# MySQL中的字符轉換函數有哪些
MySQL提供了豐富的字符轉換函數,用于處理字符串大小寫轉換、字符集轉換、格式轉換等操作。這些函數在數據清洗、報表生成和國際化支持等場景中非常實用。以下是MySQL中常用的字符轉換函數詳解。
---
## 一、大小寫轉換函數
### 1. `UPPER()` / `UCASE()`
將字符串轉換為大寫形式:
```sql
SELECT UPPER('Hello World'); -- 輸出: HELLO WORLD
SELECT UCASE('MySQL'); -- 輸出: MYSQL
LOWER()
/ LCASE()
將字符串轉換為小寫形式:
SELECT LOWER('Hello World'); -- 輸出: hello world
SELECT LCASE('MySQL'); -- 輸出: mysql
CONVERT()
轉換字符串的字符集:
SELECT CONVERT('你好' USING utf8mb4);
CAST()
將值轉換為指定類型(支持字符集):
SELECT CAST('123' AS CHAR CHARACTER SET utf8mb4);
HEX()
和 UNHEX()
HEX()
將字符串轉為十六進制UNHEX()
執行反向操作SELECT HEX('ABC'); -- 輸出: 414243
SELECT UNHEX('414243'); -- 輸出: ABC
TO_BASE64()
和 FROM_BASE64()
Base64編碼與解碼:
SELECT TO_BASE64('data'); -- 輸出: ZGF0YQ==
SELECT FROM_BASE64('ZGF0YQ=='); -- 輸出: data
FORMAT()
數字格式化(返回字符串):
SELECT FORMAT(12345.678, 2); -- 輸出: 12,345.68
DATE_FORMAT()
日期轉字符串:
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d'); -- 輸出: 2023-07-20
BIN()
/ OCT()
/ HEX()
數值進制轉換:
SELECT BIN(10); -- 輸出: 1010
SELECT OCT(10); -- 輸出: 12
SELECT HEX(255); -- 輸出: FF
CHAR()
根據ASCII碼生成字符:
SELECT CHAR(65); -- 輸出: A
ASCII()
獲取字符的ASCII碼:
SELECT ASCII('A'); -- 輸出: 65
CONCAT()
字符串連接(隱式類型轉換):
SELECT CONCAT('ID:', 100); -- 輸出: ID:100
性能考慮:
大量數據轉換時,CONVERT()
比 CAST()
效率更高
字符集兼容性:
轉換前需確保目標字符集支持源字符集的所有字符
隱式轉換規則:
SELECT '10' + 20; -- 輸出: 30 (MySQL自動將字符串轉為數字)
NULL處理:
大多數轉換函數遇到NULL參數會返回NULL
多語言支持:
SELECT CONVERT(column_name USING utf8mb4) FROM table;
數據脫敏:
SELECT CONCAT(LEFT(name,1), '***') FROM users;
報表格式化:
SELECT CONCAT('$', FORMAT(salary, 2)) FROM employees;
通過合理使用這些函數,可以高效地完成各種字符數據處理需求。建議在實際使用時參考MySQL官方文檔獲取最新函數說明和版本兼容性信息。 “`
注:本文基于MySQL 8.0版本編寫,部分函數在早期版本中可能不可用。實際字數約850字,可根據需要補充具體案例或性能對比等內容擴展。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。