संयोजन . आपके पास दो विकल्प हैं, तीन नहीं:
utf8_bin इन सभी को भिन्न . के रूप में मानता है :demandé और demandé और Demandé ।
utf8_..._ci (आमतौर पर utf8_general_ci या utf8_unicode_ci ) इन सभी को समान . के रूप में मानता है :demandé और demandé और Demandé ।
यदि आप केवल केस संवेदनशीलता चाहते हैं (demandé =demandé , लेकिन दोनों में से कोई भी Demandé . से मेल नहीं खाता ), आप भाग्य से बाहर हैं।
यदि आप केवल उच्चारण संवेदनशीलता चाहते हैं (demandé =Demandé , लेकिन न तो मेल खाते हैं demandé ), आप भाग्य से बाहर हैं।
घोषणा . आप जो कुछ भी चुनते हैं उसे करने का सबसे अच्छा तरीका:
CREATE TABLE (
name VARCHAR(...) CHARACTER SET utf8 COLLATE utf8_... NOT NULL,
...
PRIMARY KEY(name)
)
फ्लाई पर कॉलेशन न बदलें . यह इंडेक्स का उपयोग नहीं करेगा (अर्थात, धीमा होगा) यदि कोलेशन name में भिन्न है :
WHERE name = ... COLLATE ...
बाइनरी . डेटाटाइप BINARY , VARBINARY और BLOB बहुत पसंद हैं CHAR , VARCHAR , और TEXT COLLATE ..._bin . के साथ . शायद अंतर केवल इतना है कि टेक्स्ट को VARCHAR ... COLLATE ..._bin में वैध utf8 स्टोर करने के लिए चेक किया जाएगा। , लेकिन VARBINARY... . में संग्रहीत करते समय इसकी जांच नहीं की जाएगी . तुलना (WHERE , ORDER BY , आदि) वही होगा; यानी, बस बिट्स की तुलना करें, केस फोल्डिंग या एक्सेंट स्ट्रिपिंग आदि न करें।