2009-06-15 10 views
11

मैं क्यों इस त्रुटिMySQL अवैध मिश्रण '='

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

प्रक्रिया आ रहा है की पहचान करने में आपकी मदद की जरूरत कल तक ठीक काम कर रहा था और आज इसने की गलतियों के अवैध मिश्रण की त्रुटि देना शुरू कर दिया। मैंने अपने डेटाबेस की प्रत्येक तालिका की जांच की और सभी टेबल और उसके कॉलम एक वर्णमाला और संयोजन में हैं जो: - utf8 utf8_unicode_ci है।

मैंने एक ही स्ट्रक्चर के साथ एक और स्कीमा बनाया और उसी क्वेरी को निष्पादित करने का प्रयास किया, यह ठीक काम करता है लेकिन इसकी मूल स्कीमा पर नहीं।

क्या कोई इस पर कोई इनपुट प्रदान कर सकता है? ऐसा क्यों हो रहा है?

+1

वास्तविक क्वेरी और त्रुटि संदेश में सहायक होगा। – VolkerK

उत्तर

9

मुझे एक ही समस्या है, और मैंने पाया कि टेबलों में एक ही संयोजन था, लेकिन स्तंभ नहीं थे। आप mysqlyog परीक्षण डाउनलोड कर सकते हैं और तालिका में बदलने के लिए छुपाएं भाषा विकल्प अनचेक करें .... देखने का सबसे तेज़ तरीका।

+0

मुझे यह समस्या भी थी @ रैडमिलो, अगर मैं इसे आपके त्वरित उत्तर से हल करने में सक्षम हूं, तो मुझे बहुत धन्यवाद कहना चाहिए! – swdev

+0

निश्चित रूप से मेरी समस्या। कॉलम है कि। धन्यवाद! – racl101

4

मेरे मामले में यह बेवकूफ mysql workbench - के कारण था, यह किसी भी तरह से स्कीमा (कुछ मेटाडेटा या क्या) से प्रक्रिया डिफ़ॉल्ट कॉलेशन में जोड़ता है और फिर यदि आप अलग-अलग संयोजन के लिए प्रक्रिया में कुछ भी जोड़ते हैं, तो यह अपवाद होता है;

स्कीमा करने के लिए सही (एक जो प्रक्रिया में प्रयोग किया जाता है) मिलान सेट और फिर (resaved या निर्मित किया जाना चाहिए) प्रक्रिया को पुन: संपादित और परिवर्तनों को लागू करने के लिए और सब कुछ अब

2

के प्रत्येक पैरामीटर ठीक है चाहिए कॉन्सट फ़ंक्शन को परिवर्तित करने की आवश्यकता है।

CONCAT(CONVERT(field_A USING utf32), CONVERT(field_B USING utf32)) 

या जो कभी भी आपकी समस्या का सामना कर रहा है।

0

मेरी भी यही समस्या थी, लेकिन मेरे मामले में पर्याप्त एसक्यूएल बयान उपयोग करने से पहले रूपांतरण का उपयोग किया गया था - php

iconv(...) 
संबंधित मुद्दे