mysql查询选择喜欢带有变音符号的土耳其字母
Posted
技术标签:
【中文标题】mysql查询选择喜欢带有变音符号的土耳其字母【英文标题】:mysql query select like with diacritic Turkish letters 【发布时间】:2014-03-17 13:02:24 【问题描述】:我有一个土耳其语的令牌表; 它的默认排序规则是 utf8_general_ci 在 FreeBSD 服务器上,mysql 版本是 5.6.15
我要查询;
select * from tokens where type like 'âmâ';
或
select * from tokens where type='âmâ';
通过这些查询, 结果必须是“âmâ”的唯一结果(在土耳其语中也表示“盲人”) 但我有四个原始结果;
result 1 "amâ" means 'but'
result 2 "ama" means 'but'
result 3 "âma" means 'blind'
result 4 "âmâ" means 'blind'
这不是我想要的。
我尝试了不同的排序规则、字符集和名称。 但与工作的结果相同。
请帮忙
【问题讨论】:
你可以试试 select * from tokens where binary type='âmâ'; ? 解决了,非常感谢... 【参考方案1】:您可以强制进行二进制比较:
SELECT * FROM tokens WHERE BINARY type='âmâ';
请参阅binary operator 的文档。
【讨论】:
【参考方案2】:土耳其语排序规则是latin5_turkish_ci
。请参阅:Character Sets and Collations in MySQL。
在WHERE
子句中使用COLLATE
关键字。
SELECT *
FROM tokens
WHERE type = 'âmâ' COLLATE latin5_turkish_ci;
我没有测试过。希望对你有帮助。
请参阅:Using COLLATE in SQL Statements 和 Collation of Expressions。
【讨论】:
谢谢,但它给出了错误 "/* SQL 错误 (1253): COLLATION 'latin5_turkish_ci' is not valid for CHARACTER SET 'utf8' */" 因为我的默认排序规则是 utf8_general_ci 如果有utf8_turkish_ci
排序规则,你也可以试试那个。以上是关于mysql查询选择喜欢带有变音符号的土耳其字母的主要内容,如果未能解决你的问题,请参考以下文章
带有德语变音符号的 NSJSONSerialization 异常
带有德语变音符号的 JSON Jackson + HTTPClient