दिलचस्प पोस्ट
एक जावास्क्रिप्ट ऑब्जेक्ट में यूआरएल पैरामीटर कन्वर्ट एक सूची का औसत ढूँढना ब्लैकबेरी में एक सूचीफिल्ड को कैसे अनुकूलित करें? Android "ऊंचाई" एक छाया नहीं दिखा रहा है क्या तत्व है कि वैश्विक वैरिएबल को बनाया जाना चाहिए? PHP में फ़ाइलों को अपलोड करते समय $ $ FILES रिक्त क्यों होंगे? टंक्रीट में विभिन्न अनुप्रयोगों के बीच सत्र का हिस्सा साझा करने का कोई भी तरीका? ऑब्जेक्ट == रिक्त या शून्य == ऑब्जेक्ट? स्थान क्लाइंट प्राप्त स्थान स्थान () रिटर्न रिक्त खाली मैट्रिक्स गुणा के माध्यम से एरे को प्रारंभ करने का सबसे तेज़ तरीका है? (Matlab) जावास्क्रिप्ट में छवि डेटा प्राप्त करें? कोर डेटा के लिए "स्वचालित हल्के प्रवासन" का कार्यान्वयन (आईफ़ोन) HTML5 स्थानीय स्टॉरेज कुंजी प्राप्त करें C ++ में 'struct' और 'typedef struct' के बीच का अंतर? .NET 4 में एक JSON स्ट्रिंग में सी # ऑब्जेक्ट को चालू करें

MySQL में "collations के गैरकानूनी मिश्रण" समस्या निवारण

MySQL में संग्रहीत कार्यप्रणाली के माध्यम से एक चयन करने का प्रयास करते समय नीचे त्रुटि मिल रही है

ऑपरेशन के लिए 'collation (latin1_general_cs, IMPLICIT) और (latin1_general_ci, IMPLICIT) का अवैध मिश्रण' = '

क्या गलत हो सकता है पर कोई विचार यहाँ?

तालिका का मिलान latin1_general_ci और उस स्तंभ में जहां खंड latin1_general_cs

वेब के समाधान से एकत्रित समाधान "MySQL में "collations के गैरकानूनी मिश्रण" समस्या निवारण"

यह आम तौर पर असंगत मिलान के दो स्ट्रिंग्स की तुलना करके या एक संयुक्त कॉलम में विभिन्न कोलेशन के डेटा का चयन करने के कारण होता है।

COLLATE आपको क्वेरी में उपयोग किए गए कोलेशन निर्दिष्ट करने की अनुमति देता है।

उदाहरण के लिए, निम्नलिखित WHERE खंड हमेशा आपके द्वारा पोस्ट की गई त्रुटि देगा:

 WHERE 'A' COLLATE latin1_general_ci = 'A' COLLATE latin1_general_cs 

आपका समाधान क्वेरी के भीतर दो कॉलम के लिए एक साझा समन्वयन निर्दिष्ट करना है। यहां COLLATE क्लॉज का एक उदाहरण है:

 SELECT * FROM table ORDER BY key COLLATE latin1_general_ci; 

एक और विकल्प का उपयोग BINARY ऑपरेटर के लिए है:

BINARY str सीएएसटी के लिए लघुकोड (एसआरएस बिनरी) है।

आपका समाधान कुछ ऐसा दिखाई दे सकता है:

 SELECT * FROM table WHERE BINARY a = BINARY b; 

या,

 SELECT * FROM table ORDER BY BINARY a; 

टी एल; डॉ

या तो स्ट्रिंग्स के एक (या दोनों) के मिलान को परिवर्तित करें ताकि वे मैच करें, या फिर अपनी अभिव्यक्ति के लिए एक COLLATE क्लॉज जोड़ COLLATE


  1. वैसे भी यह "मिलन" सामान क्या है?

    जैसा कि सामान्य में वर्ण समूह और संरेखण के तहत प्रलेखित किया गया है:

    एक वर्ण सेट प्रतीकों और एन्कोडिंग का एक सेट है एक चरित्र सेट में अक्षरों की तुलना करने के लिए एक संयोजन नियमों का एक समूह है। चलो एक काल्पनिक चरित्र सेट के उदाहरण के साथ स्पष्ट अंतर बनाते हैं।

    मान लीजिए कि हमारे चार वर्णों के साथ एक वर्णमाला है: " A ", " B ", " a ", " b "। हम प्रत्येक अक्षर एक संख्या देते हैं: " A " = 0, " B " = 1, " a " = 2, " b " = 3. पत्र " A " एक प्रतीक है, संख्या 0 " A " के लिए एन्कोडिंग है , और सभी चार अक्षरों के संयोजन और उनके एन्कोडिंग एक चरित्र सेट है

    मान लीजिए कि हम दो स्ट्रिंग मानों की तुलना करना चाहते हैं, " A " और " B " ऐसा करने का सबसे सरल तरीका एन्कोडिंग को देखना है: " A " के लिए 0 और " B " के लिए 1 क्योंकि 0 1 से कम है, हम कहते हैं " A " से कम " B " है। हमने जो कुछ किया है, वह हमारे चरित्र सेट के साथ एक संयोजन लागू होता है। कोलेशन नियमों का एक समूह है (इस मामले में केवल एक नियम): "एन्कोडिंग की तुलना करें।" हम इसे सभी संभव कॉललेशन के एक बाइनरी कोलेशन कहते हैं।

    लेकिन अगर हम यह कहना चाहते हैं कि लोअरकेस और अपरकेस अक्षर समकक्ष हैं? तो हमारे पास कम से कम दो नियम होंगे: (1) लोअरकेस अक्षरों को " a " और " b " के रूप में " A " और " B " के बराबर का इलाज करना; (2) फिर एन्कोडिंग की तुलना करें हम इसे एक केस-असंवेदनशील मिलान कहते हैं। यह द्विआधारी कोलेशन से थोड़ी अधिक जटिल है

    वास्तविक जीवन में, अधिकांश चरित्र सेटों में कई अक्षर हैं: न सिर्फ " A " और " B " लेकिन पूरे अक्षर, कभी-कभी कई अक्षर या हजारों वर्णों के साथ पूर्वी लेखन प्रणालियां, कई विशेष प्रतीकों और विराम चिह्नों के साथ। इसके अलावा वास्तविक जीवन में, अधिकांश कोलेशन्स के पास कई नियम हैं, न केवल अक्षरों में अंतर करने के लिए, बल्कि एक्स्टेंड्स (एक "उच्चारण", जर्मन " Ö " के रूप में वर्ण के साथ एक चिह्न संलग्न है), और बहु- चरित्र मैपिंग (जैसे नियम है कि "जर्मन" के दो में से एक में " Ö " = " OE ")।

    इसके अलावा उदाहरण कोलेक्शन के प्रभाव के उदाहरण के तहत दिए गए हैं।

  2. ठीक है, लेकिन MySQL कैसे तय करता है कि किसी दिए गए अभिव्यक्ति के लिए कौन सा मिलान प्रयोग करेगा?

    अभिव्यक्तियों के कोलेशन के तहत दस्तावेज के रूप में:

    बयानों के महान बहुमत में, यह स्पष्ट है कि एक तुलनात्मक ऑपरेशन को हल करने के लिए MySQL का उपयोग कैसे करता है। उदाहरण के लिए, निम्नलिखित मामलों में, यह स्पष्ट होना चाहिए कि कॉलेशन कॉलम के charset_name :

     SELECT x FROM T ORDER BY x; SELECT x FROM T WHERE x = x; SELECT DISTINCT x FROM T; 

    हालांकि, कई ऑपरेंडों के साथ, अस्पष्टता हो सकती है उदाहरण के लिए:

     SELECT x FROM T WHERE x = 'Y'; 

    क्या तुलना में स्तंभ x , या स्ट्रिंग 'Y' स्ट्रिंग के मिलान का उपयोग करना चाहिए? दोनों x और 'Y' कॉलेशन हैं, इसलिए कौन सा अधिभार पूर्वता लेता है?

    मानक एसक्यूएल इस तरह के प्रश्नों को हल करता है जिसका उपयोग "कोयर्सबिलिटी" नियम कहा जाता था।

      [ डीलेटिया ] 

    MySQL को अस्पष्टता को हल करने के लिए निम्नलिखित नियमों के साथ गुणांक मूल्यों का उपयोग करता है:

    • सबसे कम सघनता मान के साथ मिलान का उपयोग करें

    • यदि दोनों पक्षों में समान गुणांक है, तो:

      • यदि दोनों पक्ष यूनिकोड हैं, या दोनों पक्ष युनिकोड नहीं हैं, तो यह एक त्रुटि है।

      • यदि किसी एक पक्ष में यूनिकोड वर्ण सेट है, और दूसरी तरफ एक गैर-यूनिकोड वर्ण सेट है, तो यूनिकोड वर्ण सेट जीतता है, और गैर-यूनिकोड पक्ष के लिए स्वत: वर्ण सेट रूपांतरण लागू होता है उदाहरण के लिए, निम्नलिखित कथन में त्रुटि नहीं होती है:

         SELECT CONCAT(utf8_column, latin1_column) FROM t1; 

        यह एक परिणाम देता है जिसमें utf8_column का एक चरित्र सेट और utf8_column के समान मिलान utf8_columnlatin1_column मान को स्वचालित रूप से latin1_column करने से पहले utf8 परिवर्तित कर दिया जाता है।

      • एक ही चरित्र सेट के _bin साथ एक ऑपरेशन के लिए, लेकिन यह एक _bin collation और एक _ci या _cs collation मिश्रण, _bin collation उपयोग किया जाता है यह समानता के समान है कि कैसे गैर-बाइनरी और द्विआधारी स्ट्रिंग्स के मिश्रण वाले ऑपरेशन्स को द्विआधारी स्ट्रिंग के रूप में ऑपरेंड्स का मूल्यांकन करते हैं, सिवाय इसके कि यह आंकड़ों के बजाय कॉलेशन के लिए है।

  3. तो क्या "collations के अवैध मिश्रण" है?

    एक "निष्कर्षों के गैरकानूनी मिश्रण" तब होता है जब अभिव्यक्ति विभिन्न कोलालेशन की दो तारों की तुलना करती है, लेकिन समान सहसंबद्धता की और सहसम्मति के नियम संघर्ष को हल करने में मदद नहीं कर सकते हैं। यह उपरोक्त उद्धरण में तीसरे बुलेट-बिंदु के तहत वर्णित स्थिति है।

    प्रश्न में दिए गए विशेष त्रुटि Illegal mix of collations (latin1_general_cs,IMPLICIT) and (latin1_general_ci,IMPLICIT) for operation '=' , हमें बताता है कि बराबर सहसंबद्धता के दो गैर-यूनिकोड तारों के बीच समानता की तुलना हुई थी। यह भी हमें बताता है कि सम्मेलनों को स्पष्ट रूप से बयान में नहीं दिया गया था बल्कि स्ट्रिंग स्रोत (जैसे कॉलम मेटाडेटा) से निहित था।

  4. यह सब बहुत अच्छी तरह से है, लेकिन यह कैसे एक ऐसी त्रुटियों को हल करता है?

    जैसा कि उपरोक्त उद्धृत मैनुअल निष्कर्षों का सुझाव है, इस समस्या को कई तरीकों से हल किया जा सकता है, जिनमें से दो समझदार हैं और अनुशंसित किए जाने के लिए:

    • तारों के एक (या दोनों) के मिलान को परिवर्तित करें ताकि वे मैच कर सकें और अब कोई अस्पष्टता नहीं है

      यह कैसे किया जा सकता है, इस पर निर्भर करता है कि स्ट्रिंग कहां से आती है: शाब्दिक अभिव्यक्ति collation_connection सिस्टम चर में निर्दिष्ट कॉलेशन लेती है; तालिकाओं से मान उनके कॉलम मेटाडेटा में निर्दिष्ट कॉलेशन लेते हैं।

    • एक स्ट्रिंग को मजबूती के लिए मजबूर न करें

      मैंने ऊपर से निम्नलिखित बोली छोड़ी:

      MySQL निम्न प्रकार के गुणांक मूल्यों को असाइन करता है:

      • एक स्पष्ट COLLATE खंड में 0 की एक coercibility है। (बिल्कुल coercible नहीं।)

      • अलग-अलग collations के साथ दो स्ट्रिंग्स के संयोजन में 1 के गुणांक है।

      • एक कॉलम या एक संग्रहीत नियमित पैरामीटर या स्थानीय चर के साथ-साथ समन्वयन 2 की एक गुणांक है

      • एक "प्रणाली स्थिर" (स्ट्रिंग जैसे फ़ंक्शन जैसे USER() या VERSION() ) को 3 की एक गुणांक है।

      • एक शाब्दिक के संयोजन में 4 के एक गुणांक है।

      • NULL या NULL से प्राप्त की गई अभिव्यक्ति 5 की एक coercibility है

      इस प्रकार तुलना में उपयोग किए गए तारों में से किसी एक COLLATE क्लॉज को जोड़ने से उस मिलान का उपयोग करने के लिए मजबूर हो जाएगा

    यद्यपि दूसरों को बहुत बुरा व्यवहार होगा यदि वे केवल इस त्रुटि को हल करने के लिए तैनात किए गए थे:

    • स्ट्रिंग के एक (या दोनों) को कुछ अन्य मजबूरता मूल्य के लिए मजबूर करें ताकि कोई पूर्वता ले ले।

      CONCAT() या CONCAT_WS() का उपयोग 1 के गुणांक के साथ एक स्ट्रिंग का परिणाम होगा; और (अगर एक संग्रहीत दिनचर्या में) मापदंडों / लोकल चर का उपयोग होता है तो तार के परिणामस्वरूप 2 की मजबूती होती है

    • स्ट्रिंग्स के एक (या दोनों) के एन्कोडिंग को बदलें ताकि एक यूनिकोड हो और दूसरा नहीं।

      यह CONVERT( expr USING transcoding_name ) साथ ट्रांसकोडिंग के द्वारा किया जा सकता है CONVERT( expr USING transcoding_name ) ; या डेटा के अंतर्निहित वर्ण सेट को बदलकर (उदाहरण के लिए कॉलम को संशोधित करना, character_set_connection मूल्य बदलने के लिए चरित्र_सेट_कनेक्शन, या क्लाइंट से उन्हें एक अलग एन्कोडिंग में बदलना और character_set_client बदलना / एक चरित्र सेट परिचयकर्ता जोड़ना)। ध्यान दें कि एन्कोडिंग को बदलने से अन्य समस्याएं आ जाएंगी यदि कुछ वांछित वर्ण नए चरित्र सेट में एन्कोड नहीं किए जा सकते हैं।

    • स्ट्रिंग्स के एक (या दोनों) के एन्कोडिंग को बदलें ताकि वे दोनों समान हो और संबंधित _bin कॉलेशन का उपयोग करने के लिए एक स्ट्रिंग बदल _bin

      एनकोडिंग और कोलेशन बदलने के लिए तरीकों को ऊपर वर्णित किया गया है। यह दृष्टिकोण बहुत कम उपयोग होगा यदि एक को वास्तव में अधिक उन्नत मिलान नियमों को लागू करने की आवश्यकता होती है जो कि _bin collation द्वारा की _bin

भविष्य के Googlers के लिए चर्चा में मेरे 2 सी जोड़ना

मैं इसी तरह की समस्या की जांच कर रहा था, जहां मुझे कस्टम कार्य का उपयोग करते समय निम्नलिखित त्रुटि मिली, जो एक varchar पैरामीटर प्राप्त करते हैं:

 Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '=' 

निम्नलिखित क्वेरी का उपयोग करना:

 mysql> show variables like "collation_database"; +--------------------+-----------------+ | Variable_name | Value | +--------------------+-----------------+ | collation_database | utf8_general_ci | +--------------------+-----------------+ 

मैं यह बता सकता था कि डीबी utf8_general_ci का उपयोग कर रहा था, जबकि टेबल utf8_unicode_ci का उपयोग करके परिभाषित किया गया था:

 mysql> show table status; +--------------+-----------------+ | Name | Collation | +--------------+-----------------+ | my_view | NULL | | my_table | utf8_unicode_ci | ... 

ध्यान दें कि विचारों में नल कोलेशन है। ऐसा प्रतीत होता है कि विचार और फ़ंक्शन में कोलेशन परिभाषाएं होती हैं, हालांकि यह क्वेरी एक दृश्य के लिए शून्य दिखाई देती है। उपयोग किया गया मिलावट डीबी मिलान है जिसे परिभाषित किया गया था जब व्यू / फ़ंक्शन बनाया गया था।

दुखद समाधान दोनों को डीबी मिलान बदलने और वर्तमान कॉलेशन का उपयोग करने के लिए मजबूर करने के लिए विचारों / कार्यों को पुन: निर्मित करना था।

  • डीबी के मिलान को बदलना:

     ALTER DATABASE mydb DEFAULT COLLATE utf8_unicode_ci; 

मुझे उम्मीद है कि यह किसी की मदद करेगा

कभी-कभी यह वर्णक बदलने में विशेष रूप से खतरनाक हो सकता है, खासकर डेटा के विशाल डेटा वाले डेटाबेस पर। मुझे लगता है कि सबसे अच्छा विकल्प "बाइनरी" ऑपरेटर का उपयोग करना है:

 eg : WHERE binary table1.column1 = binary table2.column1 

आप इस स्क्रिप्ट की कोशिश कर सकते हैं, जो आपके सभी डेटाबेस और तालिकाओं को utf8 में कनवर्ट करता है।

यदि शाब्दिक शामिल हैं तो समाधान।

मैं Pentaho डेटा एकीकरण का उपयोग कर रहा हूँ और एसक्यूएल वाक्यविन्यास निर्दिष्ट करने के लिए न मिलता है। एक बहुत ही सरल डीबी लुकअप का प्रयोग करने से "ऑपरेशन '=' के लिए" गैरकानूनी मिश्रणों (cp850_general_ci, COERCIBLE) और (latin1_swedish_ci, COERCIBLE) त्रुटि प्रदान की गई "

उत्पन्न कोड था "SELECT DATA_DATE as latest_DATA_DATE से hr_cc_normalised_data_date_v WHERE PSEUDO_KEY =?"

कहानी को कम करना लुकअप एक दृश्य था और जब मैंने जारी किया था

 mysql> show full columns from hr_cc_normalised_data_date_v; +------------+------------+-------------------+------+-----+ | Field | Type | Collation | Null | Key | +------------+------------+-------------------+------+-----+ | PSEUDO_KEY | varchar(1) | cp850_general_ci | NO | | | DATA_DATE | varchar(8) | latin1_general_cs | YES | | +------------+------------+-------------------+------+-----+ 

जो बताता है कि 'cp850_general_ci' कहां से आता है।

दृश्य बस 'SELECT' X '…… के साथ बनाया गया था … मैनुअल लीटरल्स के अनुसार, सर्वर सेटिंग्स से उनके चरित्र सेट और कोलेशन को प्राप्त करना चाहिए जो' latin1 'और' latin1_general_cs 'के रूप में ठीक से परिभाषित किए गए थे स्पष्ट रूप से ऐसा नहीं हुआ मैंने इसे देखने के सृजन में मजबूर किया

 CREATE OR REPLACE VIEW hr_cc_normalised_data_date_v AS SELECT convert('X' using latin1) COLLATE latin1_general_cs AS PSEUDO_KEY , DATA_DATE FROM HR_COSTCENTRE_NORMALISED_mV LIMIT 1; 

अब यह दोनों कॉलम के लिए latin1_general_cs दिखाता है और त्रुटि दूर हो गई है। 🙂

यदि उन कॉलम जिनके साथ आपको परेशानी हो रही है, "हैंश" हैं, तो निम्नलिखित पर विचार करें …

यदि "हैश" एक द्विआधारी स्ट्रिंग है, तो आप वास्तव में द्विचर BINARY(...) डेटाटाइप का उपयोग करना चाहिए।

यदि "हैश" एक हेक्स स्ट्रिंग है, तो आपको utf8 की आवश्यकता नहीं है, और इन्हें चरित्र चेक की वजह से बचना चाहिए, आदि। उदाहरण के लिए, MySQL का MD5(...) एक निश्चित लंबाई 32-बाइट हेक्स स्ट्रिंग पैदा करता है। SHA1(...) एक 40-बाइट हेक्स स्ट्रिंग देता है यह CHAR(32) CHARACTER SET ascii (या sha1 के लिए 40 CHAR(32) CHARACTER SET ascii में संग्रहीत किया जा सकता है।

या, बेहतर अभी तक, UNHEX(MD5(...)) को BINARY(16) में स्टोर करें। यह स्तंभ के आधे आकार में कटौती करता है (यह, हालांकि, इसे अनपेक्षित रूप से बना देता है।) SELECT HEX(hash) ... अगर आप इसे पठनीय चाहते हैं।

दो BINARY कॉलम की तुलना करने के लिए कोई कॉलेशन समस्या नहीं है।

मुझे एक समान समस्या थी, FIND_IN_SET प्रक्रिया का उपयोग स्ट्रिंग चर के साथ करने की कोशिश कर रहा था।

 SET @my_var = 'string1,string2'; SELECT * from my_table WHERE FIND_IN_SET(column_name,@my_var); 

और त्रुटि प्राप्त कर रहा था

त्रुटि संहिता: 1267. ऑपरेशन के लिए 'मिले_इन_सेट' के लिए collations के गैरकानूनी मिश्रण (utf8_unicode_ci, IMPLICIT) और (utf8_general_ci, IMPLICIT)

संक्षिप्त जवाब:

किसी भी collation_YYYY चर को बदलने की कोई जरूरत नहीं है, बस अपने चर घोषणापत्र के आगे सही मिलान जोड़ें, अर्थात

 SET @my_var = 'string1,string2' COLLATE utf8_unicode_ci; SELECT * from my_table WHERE FIND_IN_SET(column_name,@my_var); 

लंबा जवाब:

मैंने पहले कोलेशन वेरिएबल की जाँच की:

 mysql> SHOW VARIABLES LIKE 'collation%'; +----------------------+-----------------+ | Variable_name | Value | +----------------------+-----------------+ | collation_connection | utf8_general_ci | +----------------------+-----------------+ | collation_database | utf8_general_ci | +----------------------+-----------------+ | collation_server | utf8_general_ci | +----------------------+-----------------+ 

फिर मैंने टेबल कोलेशन की जाँच की:

 mysql> SHOW CREATE TABLE my_table; CREATE TABLE `my_table` ( `id` int(11) NOT NULL AUTO_INCREMENT, `column_name` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=125 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; 

इसका अर्थ है कि मेरा चर utf8_general_ci के डिफ़ॉल्ट मिलान के साथ कॉन्फ़िगर किया गया था जबकि मेरी तालिका को utf8_unicode_ci के रूप में कॉन्फ़िगर किया गया था।

चर घोषणापत्र के बगल में COLLATE कमान जोड़कर, तालिका के लिए कॉन्फ़िगर किए गए मिलान को मिलान करने के साथ चर कॉलेशन मिला है।

MySQL वास्तव में मिश्रित मिश्रणों को नापसंद करता है, जब तक कि वे उन्हें उसी के लिए मजबूर नहीं कर सकते (जो स्पष्ट रूप से आपके मामले में संभव नहीं है)। क्या आप एक समान मिलान को एक कोललेट क्लॉज़ के माध्यम से इस्तेमाल करने के लिए मजबूर नहीं कर सकते हैं? (या सरल BINARY शॉर्टकट यदि लागू हो …)

एक संभावित समाधान पूरे डाटाबेस को यूटीएफ 8 में परिवर्तित करना है (यह भी देखें)।

mysql.proc साथ समस्या का एक और स्रोत mysql.proc तालिका है अपने भंडारण प्रक्रियाओं और कार्यों के मिलानों की जांच करें:

 SELECT p.db, p.db_collation, p.type, COUNT(*) cnt FROM mysql.proc p GROUP BY p.db, p.db_collation, p.type; 

इसके अलावा mysql.proc.collation_connection और mysql.proc.character_set_client कॉलम पर ध्यान mysql.proc.character_set_client

मैंने ALTER DATABASE mydb DEFAULT COLLATE utf8_unicode_ci; उपयोग किया था ALTER DATABASE mydb DEFAULT COLLATE utf8_unicode_ci; , लेकिन काम नहीं किया

इस प्रश्न में:

 Select * from table1, table2 where table1.field = date_format(table2.field,'%H'); 

मेरे लिए यह काम:

 Select * from table1, table2 where concat(table1.field) = date_format(table2.field,'%H'); 

हाँ, केवल एक concat

इस कोड को एसक्यूएल क्वेरी / डेटाबेस पर क्वेरी को चलाने के अंदर रखा जाना चाहिए

एसक्यूएल QUERY विंडोज

 ALTER TABLE `table_name` CHANGE `column_name` `column_name` VARCHAR(128) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL; 

कृपया उचित नाम के साथ table_name और column_name को बदलें।