किसी स्तंभ के सभी मानों को कम करने के लिए अद्यतन करें


100

आइए हम कुछ इस तरह कहते हैं

uid    tag
1      HeLLo
2      heLLO
3      HELLO
4      hello

मैं "टैग" कॉलम में सभी मानों को कैसे अपडेट कर सकता हूं:

uid    tag
1      hello 
2      hello 
3      hello 
4      hello 

MySQL का उपयोग?

जवाबों:


243

Http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_lower देखें

UPDATE table_name SET tag = LOWER(tag)

3
ध्यान दें, यह सही नहीं है जब आपका डेटाबेस केस असंवेदनशील मिलान का उपयोग करता है।
पन्ना।

ईमेल के साथ यह कैसे काम करेगा? Name@domain.com @ बदल जाएगा?
ब्योर्न सी

2
UPDATE table_name SET tag = BINARY LOWER(tag)केस असंवेदनशील मिलान के लिए।
एनबीबी

2
@ BjörnC - ऊपरी / निचले केवल पत्र बदलते हैं; अन्य सभी वर्ण अपरिवर्तित हैं।
टूलमेकरसेव

@ रिपो मुझे यह त्रुटि तब मिलती है जब मैं इस प्रश्न की कोशिश करता हूंHINT: No function matches the given name and argument types. You might need to add explicit type casts.
लूना लवगूड

68

कम ()

update table set tag = LOWER(tag)

मुझे यह त्रुटि तब मिलती है जब मैं इस प्रश्न को हल करता हूं HINT: कोई फ़ंक्शन दिए गए नाम और तर्क प्रकारों से मेल नहीं खाता है। आपको स्पष्ट प्रकार की जातियों को जोड़ने की आवश्यकता हो सकती है।
लूना लवगूड

4

केस-असंवेदनशील मिलान के लिए संस्करण और यदि आप पूरे कॉलम को अपडेट नहीं करना चाहते हैं, तो "WHERE" क्लॉज सहित:

UPDATE table 
SET tag = LOWER(tag)
WHERE LOWER(tag) != tag
COLLATE Latin1_General_CS_AS

यदि आपका डेटाबेस केस असंवेदनशील मिलान का उपयोग करता है, तो COLLATE लाइन इसे काम करेगी।


मुझे यह त्रुटि तब मिलती है जब मैं इस प्रश्न को हल करता हूं HINT: कोई फ़ंक्शन दिए गए नाम और तर्क प्रकारों से मेल नहीं खाता है। आपको स्पष्ट प्रकार की जातियों को जोड़ने की आवश्यकता हो सकती है।
लूना लवगूड

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.