0

根据http://www.i18nqa.com/debug/utf8-debug.html我想在我的MySQL表中执行搜索以查看我是否有具有编码问题的行。特殊字符选择MySQL的问题

如果我运行下面的查询:

select t.col1 from table t where t.col1 like '%Ú%' 

它会带来所有具有t.col1“作为对它们的字符。

如何更改查询,使其仅提取包含'%Ú%'的行的,并非全部包含'%as%'

+0

这可能会帮助:http://stackoverflow.com/a/14007477 –

+0

如果你想折叠的情况下,但区分重音,请提交在http请求://错误.mysql.com。 –

回答

1

,如果您使用排序规则latin1_swedish_ci

select t.col1 from table t where t.col1 regexp '^[Ú]'; 
+0

请注意'REGEXP'相当蹩脚 - 它不理解字符集,只懂字节。所以哈桑使用它恰好工作。 –

0

随着MySQL的排序规则,大小写折叠和口音剥离一起去尝试。

如果您不需要,请使用..._bin排序规则处理您正在使用的字符集。

WHERE foo LIKE '%Ú%' COLLATE utf8_bin 

即使快将宣布fooCOLLATE utf8_bin,而不是不管你有。 (注:utf8默认为utf8_general_ci。)

+0

刚刚测试过它,它的工作原理。 – Marius