mysql फ़ंक्शन में अल्फान्यूमेरिक टेक्स्ट से अग्रणी शून्य को कैसे ट्रिम करें

अल्फान्यूमेरिक टेक्स्ट फ़ील्ड से अग्रणी शून्यों को ट्रिम करने के लिए क्या MySQL फ़ंक्शन हैं (यदि कोई हैं)?

"00345 एबीसी" मूल्य वाले फ़ील्ड को "345 एबीसी" वापस करने की आवश्यकता होगी।

0

7 उत्तर

टीआरआईएम आपको पिछला, अग्रणी या सभी पात्रों को हटाने की अनुमति देगा। MySQL में TRIM फ़ंक्शन के उपयोग पर कुछ उदाहरण:

select trim(myfield) from (select '   test' myfield) t;
>> 'test'
select trim('0' from myfield) from (select '000000123000' myfield) t;
>> '123'
select trim(both '0' from myfield) from (select '000000123000' myfield) t;
>> '123'
select trim(leading '0' from myfield) from (select '000000123000' myfield) t;
>> '123000'
select trim(trailing '0' from myfield) from (select '000000123000' myfield) t;
>> '000000123'

यदि आप केवल अग्रणी/पीछे वाले वर्णों की एक चुनिंदा राशि को हटाना चाहते हैं, तो LEN और INSTR फ़ंक्शंस के संयोजन के साथ बाएं/दाएं फ़ंक्शंस में देखें

0
जोड़ा

यदि आप किसी तालिका के पूरे कॉलम को अपडेट करना चाहते हैं, तो आप इसका उपयोग कर सकते हैं

USE database_name;
UPDATE `table_name` SET `field` = TRIM(LEADING '0' FROM `field`) WHERE `field` LIKE '0%';
0
जोड़ा

आप trim() फ़ंक्शन की तलाश में हैं ।

ठीक है, आपका उदाहरण यहाँ है

SELECT TRIM(LEADING '0' FROM myfield) FROM table
0
जोड़ा
क्या यह कई शून्यों के लिए भी है?
जोड़ा लेखक Peter, स्रोत
++ विशेष रूप से TRIM ('000345ANB095' से '0' लीडिंग)
जोड़ा लेखक Tom Ritter, स्रोत
यदि यह पहले से ही '0000' है तो यह मूल्य खाली छोड़ देगा।
जोड़ा लेखक arslion, स्रोत

मुझे विश्वास है कि आप इसके साथ सबसे अच्छा होगा:

SELECT TRIM(LEADING '0' FROM myField)
0
जोड़ा

बस TRIM (LEADING के बीच स्थान हटाएं उपयोग

SELECT * FROM my_table WHERE TRIM(LEADING '0' FROM accountid ) = '00322994' 
0
जोड़ा
क्या यह एकाधिक शून्य के साथ काम करेगा?
जोड़ा लेखक Peter, स्रोत

सुझाव:

यदि आपके मान पूरी तरह से संख्यात्मक हैं, तो आप सरल कास्टिंग का भी उपयोग कर सकते हैं, उदा।

SELECT * FROM my_table WHERE accountid = '00322994' * 1

वास्तव में में परिवर्तित हो जाएगा

SELECT * FROM my_table WHERE accountid = 322994

जो कई मामलों में पर्याप्त समाधान है और मुझे विश्वास है कि प्रदर्शन अधिक प्रभावी है। (चेतावनी - मूल्य प्रकार STRING से INT/FLOAT में परिवर्तन)।

कुछ परिस्थितियों में, कुछ कास्टिंग फ़ंक्शन का उपयोग करने का भी एक तरीका हो सकता है:

http://dev.mysql.com/doc/refman/5.0/en/cast- functions.html

0
जोड़ा
मुझे लगता है कि + 1 * 1 से int में डालने का एक आम तरीका है
जोड़ा लेखक mpen, स्रोत
यह मूल्य बहुत उपयोगी है यदि मान '000000' जैसा है।
जोड़ा लेखक Septian Primadewa, स्रोत

TRIM चुनें ( कॉलमनाम से <0> 'से' 0 '') tableName ; यह भी सही ढंग से काम करता है

0
जोड़ा