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

MySQL 類型轉換函數與操作符:CAST、CONVERT、BINARY 完全手冊

     編輯:MySQL 綜合教學

MySQL 類型轉換函數與操作符:CAST、CONVERT、BINARY 完全手冊

1. BINARY 操作符

強制按字節比較,區分大小寫、敏感尾部空格:

SELECT 'a' = 'A';        -- 1 (不區分大小寫)
SELECT BINARY 'a' = 'A'; -- 0 (區分大小寫)
SELECT 'a' = 'a ';       -- 1
SELECT BINARY 'a' = 'a ';-- 0

等價於 CAST(str AS BINARY)。注意:索引列加 BINARY 可能導致索引失效。

2. CAST(expr AS type)

標準 SQL 語法,將表達式轉換為指定類型。

3. CONVERT(expr, type) / CONVERT(expr USING charset)

  • 無 USING 為 ODBC 語法;
  • USING 用於字符集轉換:SELECT CONVERT('abc' USING utf8);

4. 目標類型支援列表

類型說明
BINARY[(N)]二進制字串,不足補 0x00
CHAR[(N)]字符串,最多 N 字符
DATE / DATETIME / TIME日期時間類型
DECIMAL[(M[,D])]精確小數
SIGNED / UNSIGNED [INTEGER]有符號/無符號整數

5. 實用場景

  • BLOB 轉字符:CAST(blob_col AS CHAR(10000) CHARACTER SET utf8) —— 必須指定正確字符集;
  • ENUM 排序: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')。

6. 版本差異提示

MySQL 5.6.4 前,CAST(TIMESTAMP AS SIGNED) 直接轉換字面量會截斷為年份;5.6.4+ 已修復,正確返回 20140908180754 格式。

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