সমস্যা
ডিফল্ট কোলেশন কেস-ইনসেনসিটিভ (case-insensitive), তাই 'mysql', 'MySQL', 'MYSQL' সব একসমান বিবেচিত হয়। সঠিক কেস-সেনসিটিভ মিলানের জন্য কোলেশন পরিবর্তন করতে হয়।
সারণি ও ডেটা
mysql> create table DemoTable1620 (Subject varchar(20));
mysql> insert into DemoTable1620 values('mysql'),('MySql'),('mYSQL'),('MySQL'),('MYSQL');
কোয়েরি
mysql> select * from DemoTable1620 where Subject collate utf8_bin = 'MySQL';
ফলাফল
+---------+ | Subject | +---------+ | MySQL | +---------+
ব্যাখ্যা
- COLLATE utf8_bin — বাইনারি তুলনা করে, যেখানে প্রতিটি বাইট আলাদা বিবেচিত হয় (কেস-সেনসিটিভ)
- অন্যান্য অপশন:
utf8mb4_bin,latin1_binইত্যাদি - কলাম সংজ্ঞায় পরিমাণে কোলেশন সেট করাও যায়:
Subject varchar(20) COLLATE utf8_bin
দ্রষ্টব্য: ইনডেক্স ব্যবহার করতে হলে কলামের কোলেশন কোয়েরির কোলেশনের সাথে মিল থাকা উচিত।