| 變量 | 作用 |
|---|---|
character_set_client | 客戶端發送 SQL 語句所用字符集 |
character_set_connection | 服務器將接收到的語句轉換為此字符集 |
collation_connection | 字符串字面值比較時的校對規則(欄位值比較以欄位校對為準) |
character_set_results | 服務器向客戶端返回結果集/錯誤訊息前轉換的目標字符集 |
SET NAMES 'charset' 等價於:
SET character_set_client = charset; SET character_set_results = charset; SET character_set_connection = charset; -- 同時隱式設定 collation_connection 為 charset 預設校對
SET CHARACTER SET charset 等價於:
SET character_set_client = charset; SET character_set_results = charset; SET collation_connection = @@collation_database; -- 使用當前數據庫預設校對
客戶端連線時發送希望使用的字符集名,服務器內部執行 SET NAMES 完成三變量設定。mysql 客戶端可透過 --default-character-set 選項或選項文件永久設定。
-- 表欄位為 latin2,連線設定為 latin1 SELECT column1 FROM t; -- 服務器將 latin2 轉換為 latin1 返回,可能丟失字符 -- 禁止任何轉換,直接返回原始字符集 SET character_set_results = NULL;