根据http://www.i18nqa.com/debug/utf8-debug.html我想在我的MySQL表中执行搜索以查看我是否有具有编码问题的行。特殊字符选择MySQL的问题
如果我运行下面的查询:
select t.col1 from table t where t.col1 like '%Ú%'
它会带来所有具有t.col1“作为对它们的字符。
如何更改查询,使其仅提取包含'%Ú%'的行的,并非全部包含'%as%'。
根据http://www.i18nqa.com/debug/utf8-debug.html我想在我的MySQL表中执行搜索以查看我是否有具有编码问题的行。特殊字符选择MySQL的问题
如果我运行下面的查询:
select t.col1 from table t where t.col1 like '%Ú%'
它会带来所有具有t.col1“作为对它们的字符。
如何更改查询,使其仅提取包含'%Ú%'的行的,并非全部包含'%as%'。
,如果您使用排序规则latin1_swedish_ci
select t.col1 from table t where t.col1 regexp '^[Ú]';
请注意'REGEXP'相当蹩脚 - 它不理解字符集,只懂字节。所以哈桑使用它恰好工作。 –
随着MySQL的排序规则,大小写折叠和口音剥离一起去尝试。
如果您不需要,请使用..._bin
排序规则处理您正在使用的字符集。
WHERE foo LIKE '%Ú%' COLLATE utf8_bin
即使快将宣布foo
是COLLATE utf8_bin
,而不是不管你有。 (注:utf8
默认为utf8_general_ci
。)
刚刚测试过它,它的工作原理。 – Marius
这可能会帮助:http://stackoverflow.com/a/14007477 –
如果你想折叠的情况下,但区分重音,请提交在http请求://错误.mysql.com。 –