MySQL 預設不區分大小寫 (依排序規則 collation)。'a%' 與 'A%' 結果相同。
BINARYSELECT * FROM table_name WHERE BINARY a LIKE 'a%'; -- 僅匹配小寫 a 開頭
SELECT * FROM table_name WHERE BINARY a LIKE 'A%'; -- 僅匹配大寫 A 開頭
CREATE TABLE table_name (
a VARCHAR(20) BINARY
);
-- 或明確指定
CREATE TABLE table_name (
a VARCHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
);
此欄位所有比較預設區分大小寫,無需每次加 BINARY。
_bin:二進位比較,嚴格區分大小寫、重音、字元編碼差異_general_ci / _unicode_ci:不區分大小寫 (ci = case insensitive)_cs:區分大小寫 (cs = case sensitive),但非二進位BINARY / _bin 導致無法使用一般索引範圍掃描,大表查詢可能退化為全表掃描。僅在必要欄位/查詢使用。