MySQL 內建豐富字串函數。本文摘錄官方文件核心函數:ASCII、ORD、CONV、BIN、OCT、HEX 等進制轉換與字元碼函數,含語法、參數、回傳值與範例。
max_allowed_packet 回傳 NULLNULL 回傳 NULL| 函數 | 說明 | 範例 | 結果 |
|---|---|---|---|
ASCII(str) | 最左字元 ASCII 碼 | ASCII('2')ASCII('dx') | 50 100 |
ORD(str) | 多位元組字元編碼:(b1*256+b2)*256+b3... | ORD('2') | 50 |
CONV(N,from,to) | 進制轉換 (2-36),負 to 視為有號數 | CONV('a',16,2)CONV('6E',18,8)CONV(-17,10,-18) | '1010' '172' '-H' |
BIN(N) | 二進制字串 = CONV(N,10,2) | BIN(12) | '1100' |
OCT(N) | 八進制字串 = CONV(N,10,8) | OCT(12) | '14' |
HEX(N) | 十六進制字串 = CONV(N,10,16) | HEX(255) | 'FF' |
-- 多進制混合運算
SELECT CONV(10 + "10" + '10' + 0xa, 10, 10); -- '40' (10+10+10+10)
-- 字元編碼檢測
SELECT ORD('中'); -- 取決於連線字元集,UTF8 下為 20013 (0x4E2D)
LOWER()/UPPER()/UCASE()/LCASE()TRIM()/LTRIM()/RTRIM()SUBSTRING()/MID()/LEFT()/RIGHT()LOCATE()/POSITION()/INSTR()STRCMP()LPAD()/RPAD()/REPEAT()REPLACE()/INSERT()REVERSE()GROUP_CONCAT()CONV 是進制轉換萬用鑰匙,BIN/OCT/HEX 為常用封裝。ASCII/ORD 用於字元碼檢測與多位元組處理。善用這些函數可在 SQL 層完成編碼轉換、位元運算、格式化,減少應用層往返。