2012-04-13 17 views
28

के साथ स्ट्रिंग के पिछले 5 char प्राप्त करना मुझे mysql का उपयोग करके अंतिम 5 संख्याएं प्राप्त करनी होंगी।mysql क्वेरी

मेरे मूल्यों YOT-A78514, LOP-C4521 ...

जैसे मैं केवल पिछले पांच चार प्राप्त करने के लिए कर रहे हैं। मैं क्वेरी में यह कैसे कर सकता हूं?

+0

आप हमें कर रहे हैं आईएनजी php? –

+4

@t q: इससे कोई फर्क क्यों पड़ता है? – zerkms

+0

आप यहां जवाब क्यों नहीं देखते हैं? https://stackoverflow.com/questions/12504985/how-to-take-last-four-characters-from-a-varchar –

उत्तर

74

आप इसे RIGHT(str,len) फ़ंक्शन के साथ कर सकते हैं।

SELECT RIGHT(columnname,5) as yourvalue FROM tablename 
+3

मैं यहां +1 करने के लिए खुद को रोक नहीं सकता। –

4

Right एक अच्छा विकल्प है, लेकिन आप भी इस-

SELECT Substring(columnname,-5) as value FROM table_name 
1
SELECT row_id 
    FROM column_name 
WHERE column_value LIKE '%12345'; 
तरह substring उपयोग कर सकते हैं: स्ट्रिंग str,

नीचे की तरह

से सबसे दायां लेन वर्ण देता है

यह "row_id" वापस करेगा जब "12345" पूंछ के रूप में पाया जाता है "column_name" के भीतर "column_value" का uffix।

+0

यह उन लोगों के लिए अच्छा जवाब है जो WHERE क्लॉज के भीतर फ़िल्टर को लागू करना चाहते हैं। – Kvvaradha

1

और आप एक चरित्र के बाद सही पात्रों में से एक dinamic संख्या प्राप्त करना चाहते हैं:

SELECT TRIM( 
    RIGHT(
     database.table.field, 
     (LENGTH(database.table.field) - LOCATE('-',database.table.field)) 
    ) 
) 
FROM database.table; 
10

"ठीक है" समारोह तरीका करने के लिए, में प्रयोग करने के लिए एक समस्या पैदा हो सकती है कि इतना आसान नहीं है सूचना के लिए:

mysql> select right('hello', 6); 
+-------------------+ 
| right('hello', 6) | 
+-------------------+ 
| hello    | 
+-------------------+ 
1 row in set (0.00 sec) 

mysql> select substring('hello', -6); 
+------------------------+ 
| substring('hello', -6) | 
+------------------------+ 
|      | 
+------------------------+ 
1 row in set (0.00 sec) 

लेकिन अगर आप स्ट्रिंग की शुरुआत पिछले जाने की कोशिश नहीं करते हैं, तो निश्चित रूप से सबस्ट्रिंग ठीक काम करता है:

mysql> select substring('hello', -5); 
+------------------------+ 
| substring('hello', -5) | 
+------------------------+ 
| hello     | 
+------------------------+ 
1 row in set (0.00 sec)