mysql计算中文首字母

CREATE FUNCTION f_getFirstChar(p_str VARCHAR(100)) RETURNS VARCHAR(1) BEGIN DECLARE len INT; DECLARE index_ INT; DECLARE firstChar VARCHAR(1); SET len = CHAR_LENGTH(p_str); SET index_ = 1; WHILE index_

上述代码定义了一个名为f_getFirstChar的MySQL函数,它接受一个字符串参数p_str,并返回该字符串的首字母(按拼音顺序)。函数代码使用了MySQL提供的字符串函数SUBSTRING和CHAR_LENGTH,以及正则表达式函数HEX和REGEXP。具体地,代码根据汉字的编码范围,将中文字符分为了9类,每类使用一个特定的符号表示首字母。当函数遇到非中文字符时,返回该字符。

使用示例:

SELECT f_getFirstChar('中文'); // 返回 "Z" SELECT f_getFirstChar('北京'); // 返回 "B" SELECT f_getFirstChar('上海'); // 返回 "S" SELECT f_getFirstChar('shenzhen'); // 返回 "s"