2011-07-01 10 views
5

में अलग-अलग द्वारा ऑर्डर कर रहा है मेरे पास एक प्रश्न है जो एक VARCHAR कॉलम पर ORDER BY करता है जिसमें ईमेल पते होते हैं।एच 2 मेमोरी डीबी में माइक्रोसॉफ्ट मोड

यदि मैंने अपना भौतिक MySQL डीबी मारा है, तो यह ORDER BY में मामले को अनदेखा करता है। हालांकि, मेरी एच 2 इन-मेमोरी डीबी मामले का सम्मान कर रही है। यह MySQL मोड पर सेट है।

किसी को भी पता है कि ऐसा क्यों है?

उत्तर

5

डाटाबेस में स्ट्रिंग का मूल्यांकन करते समय केस संवेदनशीलता संयोजन द्वारा निर्धारित की जाती है।

चेक मिलान एच 2 पर से निपटने: http://www.h2database.com/html/grammar.html#set_collation

+0

धन्यवाद ओएमजी। मुझे यह नहीं मिला, क्या वे कह रहे हैं कि एच 2 टेबल या कॉलम पर संयोजन स्थापित करने का समर्थन करता है, या वे जेडीबीसी कनेक्शन में संयोजन स्थापित करने के बारे में बात कर रहे हैं? ऐसा लगता है जैसे एच 2 मेरे कॉलम पर टक्कर का सम्मान नहीं करता है (जो लैटिन 1 है) और इसके बजाय utf8 का उपयोग कर रहा है। – stevebot

2

एक मिलान उपयोग का एक विकल्प के रूप में, आप SET IGNORECASE TRUE का उपयोग कर मामले की संवेदनशीलता को निष्क्रिय कर सकते हैं। टेबल बनाने से पहले इसे करने की जरूरत है।

कारण है कि एच 2 की MySQL मोड नहीं मामले असंवेदनशील है: एच 2 में अनुकूलता मोड को प्रभावित नहीं करते कि कैसे चीजों को कायम किया है (अन्यथा आप एक डेटाबेस एक अलग संगतता मोड में बाद में उपयोग नहीं कर सका, या संगतता मोड अक्षम करें)। केस संवेदनशीलता इस बात को प्रभावित करती है कि चीजें कैसे संग्रहीत की जाती हैं (विशेष रूप से इंडेक्स)।

0

VARCHAR के बजाय VARCHAR_IGNORECASE का उपयोग करें।

Reference