首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 大小寫敏感查詢兩大法:BINARY 關鍵字與欄位定義 COLLATE

     編輯:MySQL 資料庫相關知識

MySQL 預設不區分大小寫 (依排序規則 collation)。'a%' 與 'A%' 結果相同。

方法一:查詢時加 BINARY

SELECT * 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。

補充:COLLATE 選擇指南

  • _bin:二進位比較,嚴格區分大小寫、重音、字元編碼差異
  • _general_ci / _unicode_ci:不區分大小寫 (ci = case insensitive)
  • _cs:區分大小寫 (cs = case sensitive),但非二進位

效能注意

BINARY / _bin 導致無法使用一般索引範圍掃描,大表查詢可能退化為全表掃描。僅在必要欄位/查詢使用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved