ใช้ BINARY หลัง WHERE เพื่อเปิดใช้การเปรียบเทียบ Case-Sensitive (Binary Collation)
ตัวอย่างการใช้งาน
1. สร้างตารางและข้อมูลมี EMP-1122 และ emp-1122 (ต่าง Case)
mysql> create table DemoTable (EmployeeCode varchar(100));
mysql> insert into DemoTable values('EMP-1122'), ('emp-1122'), ('EMP-6756'), ('EMP-8775');
2. Query แบบ Case-Sensitive
mysql> SELECT * FROM DemoTable WHERE BINARY EmployeeCode = 'EMP-1122';
ผลลัพธ์ (ได้แค่ EMP-1122 ตัวใหญ่)
+--------------+ | EmployeeCode | +--------------+ | EMP-1122 | +--------------+
วิธีอื่นๆ สำหรับ Case-Sensitive
1. ใช้ COLLATE ตรงคอลัมน์
SELECT * FROM DemoTable WHERE EmployeeCode COLLATE utf8mb4_bin = 'EMP-1122';
2. กำหนด Collation ตอนสร้างตาราง
CREATE TABLE DemoTable (
EmployeeCode VARCHAR(100) COLLATE utf8mb4_bin
);
3. ใช้ CAST ... AS BINARY
SELECT * FROM DemoTable WHERE CAST(EmployeeCode AS BINARY) = 'EMP-1122';
Collation แบบ Binary ที่นิยม
utf8mb4_bin- Binary, รองรับ Unicode เต็มรูปแบบlatin1_bin- Binary, Latin1 เท่านั้นutf8_bin- Binary, UTF-8 (3-byte)
หมายเหตุ: Hyphen (-) ไม่มีผลต่อการเปรียบเทียบ Case-Sensitive เพราะเป็นอักขระทั่วไป