2010-01-13 9 views
8

एसक्यूएल में स्ट्रिंग के दाहिने तरफ से किसी स्थान की पहली घटना को वापस करने का कोई तरीका है?mysql: substring जो दाईं ओर पहली घटना देता है? (subrstring ?!)

+0

आप चाहते हैं सूचकांक, या '" "'? – nickf

+0

या सही जगह के बाद पाठ? – Veger

उत्तर

5

हम्म, समारोह सूची के माध्यम से एक संक्षिप्त ब्राउज़ मुझ पर किसी भी "खोज पीछे की ओर" कार्यों पॉप अप नहीं था, लेकिन क्या तुम कर सकते हो स्ट्रिंग रिवर्स और आगे खोज है:

SELECT LENGTH(`haystack`) - POSITION('needle' IN REVERSE(`haystack`)) 
24

मैं आप INSTR साथ संयोजन के रूप में इस्तेमाल कर सकते हैं REVERSE लगता है कि आप की तरह SUBSTRING_INDEX

mysql> SELECT SUBSTRING_INDEX('first second end', ' ', -1); 
+----------------------------------------------+ 
| SUBSTRING_INDEX('first second end', ' ', -1) | 
+----------------------------------------------+ 
| end           | 
+----------------------------------------------+ 
1 row in set (0.00 sec) 
5

कुछ के लिए देख रहे हैं।

अर्थात

select right('12345 67 8', instr(reverse('12345 67 8'), ' ')); 

रिटर्न '8'।

संबंधित मुद्दे