在 MySQL 中,經常需要對字符串進行截取,常見的操作包括截取前幾位、截取后幾位等等。但是如果字符串中包含中文,由于中文字符占用的字節數不同于英文,就需要特別注意。下面我們來看一些字符串截取中可能遇到的問題。
1. 截取前幾位
SELECT SUBSTRING('中文字符串', 1, 3); -- 返回 "中文字" SELECT SUBSTR('中文字符串', 1, 3); -- 返回 "中文字"
2. 截取后幾位
SELECT SUBSTRING('中文字符串', -3); -- 返回 "字符串" SELECT SUBSTR('中文字符串', -3); -- 返回 "字符串"
3. 指定長度截取
SELECT SUBSTRING('中文字符串', 3, 3); -- 返回 "文字符串" SELECT SUBSTR('中文字符串', 3, 3); -- 返回 "文字"
4. 根據中文字符截取
SELECT SUBSTRING_INDEX('中文字符串,中文字符', ',', 1); -- 返回 "中文字符串" SELECT SUBSTR('中文字符串,中文字符', 1, LOCATE(',', '中文字符串,中文字符') - 1); -- 返回 "中文字符串"
注意:以上代碼均使用 UTF-8 編碼