MySQL 無內建漢字轉拼音功能。本文提供「建立拼音首字母對照表 + 區間查詢」的完整方案,實現漢字標題按拼音首字母分組排序,適用於目錄導航、通訊錄分組等場景。
pinyin 表,儲存 26 個字母對應的漢字編碼區間(起始漢字 HZ1、結束漢字 HZ2)。DROP TABLE IF EXISTS `pinyin`;
CREATE TABLE `pinyin` (
`PY` VARCHAR(1),
`HZ1` VARCHAR(1),
`HZ2` VARCHAR(1)
);
INSERT INTO `pinyin` (`PY`,`HZ1`,`HZ2`) VALUES
('A','吖','驁'), ('B','八','簿'), ('C','嚓','錯'), ('D','咑','鵽'),
('E','妸','樲'), ('F','發','鰒'), ('G','猤','腂'), ('H','妎','夻'),
('J','丌','攈'), ('K','咔','穒'), ('L','垃','鱳'), ('M','嘸','旀'),
('N','丆','桛'), ('O','噢','漚'), ('P','妑','曝'), ('Q','七','囕'),
('R','呥','鶸'), ('S','仨','蜶'), ('T','他','籜'), ('W','屲','鶩'),
('X','夕','鑂'), ('Y','丫','韻'), ('Z','帀','咗');
驗證: 執行後檢查是否有 ? 號,若有表示資料庫編碼不支援該漢字,需調整字符集。
SELECT `pinyin`.`PY`, `目標表`.*
FROM `目標表`, `pinyin`
WHERE `漢字標題欄位` >= `pinyin`.`HZ1`
AND `漢字標題欄位` <= `pinyin`.`HZ2`;
PY 漢字標題
Z 招聘
Z 專題
W 網站介紹
W 問吧
S 搜索
L 聯系方式
L 論壇
H 會員
G 關於我們
B 版權聲明
B 百科
SELECT `pinyin`.`PY`
FROM `pinyin`
WHERE '漢字' >= `HZ1` AND '漢字' <= `HZ2`;
結果:H(以「漢」字為例)。
utf8mb4)。