首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 大小寫敏感搜尋與排序規則設定指南

     編輯:MySQL 綜合教學

預設行為

MySQL 預設不區分大小寫進行搜尋(部分字符集如 czech 除外)。例如 col_name LIKE 'a%' 會同時匹配以 'A' 或 'a' 開頭的值。

啟用大小寫敏感搜尋

確保比較雙方至少一方具備大小寫敏感(_cs)或二進制(_bin)排序規則。對於 latin1 字符集,可用 COLLATE 操作符:

SELECT * FROM t WHERE col COLLATE latin1_general_cs = 'Abc';
SELECT * FROM t WHERE col COLLATE latin1_bin = 'Abc';

表結構層面永久生效

建表或修改表時直接指定排序規則:

CREATE TABLE t (
    col VARCHAR(50) CHARACTER SET latin1 COLLATE latin1_general_cs
);
-- 或
ALTER TABLE t MODIFY col VARCHAR(50) CHARACTER SET latin1 COLLATE latin1_bin;

排序與分組的大小寫規則

簡單比較(>=, >, =, <, <=)、ORDER BY、GROUP BY 皆依據字符的「排序值」。若多字符排序值相同(如 'E'、'e'、'É'),MySQL 視為相等。

常用排序規則對照

排序規則後綴含義
_ciCase Insensitive(不區分大小寫)
_csCase Sensitive(區分大小寫)
_binBinary(按二進制碼值比較,最嚴格)

總結

  • 查詢層面:用 COLLATE xxx_cs 或 COLLATE xxx_bin。
  • 結構層面:定義欄位時指定 COLLATE。
  • 字符集決定可用排序規則,需配合 SHOW COLLATION 查看。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved