การเปรียบเทียบเป็นกรณีตายเมื่อคอลัมน์ใช้เปรียบเทียบซึ่งจบลงด้วย_ci
(เช่นเริ่มต้น latin1_general_ci
การเปรียบเทียบ) และพวกเขามีกรณีที่สำคัญเมื่อคอลัมน์ใช้การเปรียบเทียบที่ปลายด้วย_cs
หรือ_bin
(เช่นutf8_unicode_cs
และutf8_bin
collations)
ตรวจสอบการเรียง
คุณสามารถตรวจสอบของเซิร์ฟเวอร์ , ฐานข้อมูลและการเชื่อมต่อเรียงโดยใช้:
mysql> show variables like '%collation%';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | utf8_general_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
และคุณสามารถตรวจสอบการเรียงตารางของคุณโดยใช้:
mysql> SELECT table_schema, table_name, table_collation
FROM information_schema.tables WHERE table_name = `mytable`;
+----------------------+------------+-------------------+
| table_schema | table_name | table_collation |
+----------------------+------------+-------------------+
| myschema | mytable | latin1_swedish_ci |
เปลี่ยนการเรียงหน้า
คุณสามารถเปลี่ยนการเรียงฐานข้อมูลตารางหรือคอลัมน์เป็นแบบตรงตามตัวพิมพ์ใหญ่ - เล็กได้ดังนี้:
-- Change database collation
ALTER DATABASE `databasename` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
-- or change table collation
ALTER TABLE `table` CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;
-- or change column collation
ALTER TABLE `table` CHANGE `Value`
`Value` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin;
การเปรียบเทียบของคุณควรเป็นแบบตรงตามตัวพิมพ์ใหญ่ - เล็ก