強制按字節比較,區分大小寫、敏感尾部空格:
SELECT 'a' = 'A'; -- 1 (不區分大小寫) SELECT BINARY 'a' = 'A'; -- 0 (區分大小寫) SELECT 'a' = 'a '; -- 1 SELECT BINARY 'a' = 'a ';-- 0
等價於 CAST(str AS BINARY)。注意:索引列加 BINARY 可能導致索引失效。
標準 SQL 語法,將表達式轉換為指定類型。
USING 為 ODBC 語法;USING 用於字符集轉換:SELECT CONVERT('abc' USING utf8);| 類型 | 說明 |
|---|---|
| BINARY[(N)] | 二進制字串,不足補 0x00 |
| CHAR[(N)] | 字符串,最多 N 字符 |
| DATE / DATETIME / TIME | 日期時間類型 |
| DECIMAL[(M[,D])] | 精確小數 |
| SIGNED / UNSIGNED [INTEGER] | 有符號/無符號整數 |
CAST(blob_col AS CHAR(10000) CHARACTER SET utf8) —— 必須指定正確字符集;ORDER BY CAST(enum_col AS CHAR) 按字母序而非內部數值排序;CREATE TABLE t SELECT CAST('2000-01-01' AS DATE);SELECT 1+'1'; -- 2),字符串拼接數字自動轉字符(SELECT CONCAT('hello',2); -- 'hello 2')。MySQL 5.6.4 前,CAST(TIMESTAMP AS SIGNED) 直接轉換字面量會截斷為年份;5.6.4+ 已修復,正確返回 20140908180754 格式。