ทำได้ 2 วิธี:
- ชนิดข้อมูล
VARBINARY - Collation
_bin
VARBINARY data type
สร้างตาราง:
mysql> create table SearchingDemo2 ( UserId VARBINARY(128) NOT NULL, UNIQUE KEY index_on_UserId2(UserId) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; Query OK, 0 rows affected, 1 warning (0.99 sec)
UserId เป็น VARBINARY(128) มี index unique
_bin collation
สร้างตารางใหม่:
mysql> create table SearchingDemo ( UserId varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, UNIQUE KEY index_on_UserId(UserId) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; Query OK, 0 rows affected, 2 warnings (0.88 sec)
UserId เป็น varchar(128) COLLATE utf8_bin มี index unique
ทั้งสองวิธีทำให้ uniqueness เป็น case-sensitive แต่ search เป็น case-insensitive (ขึ้นอยู่กับ collation ของ database/connection)