基本区和 A 区都是\u....的格式,B 区开始都是\u000.....了,发现 mysql 查询中 where 条件中有 B 区后面的字符,就会查询失败,具体症状是查出非常多的行,条件未被使用。
请问该怎么做?我试了 char 、undex 函数,还是一样的问题。
目前用的版本是 5.7.28 ,数据表和字段的校对规则都是 utf8mb4_general_ci
,Google 后操作的一个语言支持查询结果如下:
SELECT CHARACTER_SET_NAME, DESCRIPTION
FROM INFORMATION_SCHEMA.CHARACTER_SETS
WHERE DESCRIPTION LIKE '%Chin%'
OR DESCRIPTION LIKE '%Japanese%'
OR DESCRIPTION LIKE '%Korean%'
ORDER BY CHARACTER_SET_NAME;
CHARACTER_SET_NAME DESCRIPTION
big5 Big5 Traditional Chinese
cp932 SJIS for Windows Japanese
eucjpms UJIS for Windows Japanese
euckr EUC-KR Korean
gb18030 China National Standard GB18030
gb2312 GB2312 Simplified Chinese
gbk GBK Simplified Chinese
sjis Shift-JIS Japanese
ujis EUC-JP Japanese
1
nowheretoseek OP 补充,问题是 select 时出现的,insert 并无问题; collation 改为 utf8mb4_unicode_ci 后,问题依旧。
|
2
nowheretoseek OP 应该跟驱动程序及其配置也没有关系,在 php 、pyton 或者 mysql 终端下,问题是一样的。
|