ORD()
和 ASCII()
是 MySQL 中用于处理字符和数字之间转换的函数。
这两个函数都属于 MySQL 的字符串处理函数。
-- 使用 ORD() 函数
SELECT ORD('A'); -- 返回 65
SELECT ORD('中'); -- 返回 20013(UTF-8 编码下的 Unicode 码点)
-- 使用 ASCII() 函数
SELECT ASCII('A'); -- 返回 65
SELECT ASCII('中'); -- 返回 NULL(因为 '中' 不是单个 ASCII 字符)
ORD()
返回的值和预期不一样?原因:可能是由于字符编码不一致导致的。例如,如果数据库字符集是 UTF-8,而输入的字符是 GBK 编码,可能会导致返回的值不正确。
解决方法:
CONVERT()
函数进行字符集转换。SELECT ORD(CONVERT('中' USING utf8mb4)); -- 确保字符集一致
ASCII()
返回 NULL?原因:ASCII()
函数只接受单个字符作为参数,如果传入的字符串长度大于 1,或者包含多字节字符,就会返回 NULL。
解决方法:
SUBSTRING()
函数提取单个字符。SELECT ASCII(SUBSTRING('中', 1, 1)); -- 提取单个字符
希望这些信息对你有所帮助!
领取专属 10元无门槛券
手把手带您无忧上云