MySQL将字符串与国家字符进行比较
我遇到了一个小麻烦:MySQL将字符串与国家字符进行比较,mysql,string,Mysql,String,我遇到了一个小麻烦: SELECT * FROM tableName tn WHERE LOWER(tn.name) = LOWER('place_string_here'); 没关系,当它完美贴合时: tn.name=橘子树 将字符串放在这里=橙色树 但我的问题是:民族性格,例如: 哈斯塔格路 我希望“Hästgård”适合: Hästgård, 哈斯加德, Hastgård和/或 哈斯特加德 有什么聪明的方法可以做到这一点吗?您可以使用: 您的查询: SELECT * FROM tabl
SELECT * FROM tableName tn WHERE LOWER(tn.name) = LOWER('place_string_here');
没关系,当它完美贴合时:
tn.name=橘子树
将字符串放在这里=橙色树
但我的问题是:民族性格,例如:
哈斯塔格路
我希望“Hästgård”适合:
Hästgård,
哈斯加德,
Hastgård和/或
哈斯特加德
有什么聪明的方法可以做到这一点吗?您可以使用:
您的查询:
SELECT *
FROM tableName tn
WHERE tn.name COLLATE 'utf8_general_ci' = 'place_string_here'
VALUES
('Hästgård', 'admin@sqlfiddle.com'),
('Twitter', '@sqlfiddle');
查询:
select id, type
from t
where type COLLATE 'utf8_general_ci' = 'hastgard'
结果:
| ID | TYPE |
-----------------
| 1 | Hästgård |
我对该字段进行了拉丁文1_-swedish_ci排序,这导致了错误。 将排序规则更改为utf8_general_ci(属于“name”字段)后,它开始正常工作:-)您使用的是哪个字符集(和排序规则)您看过这篇文章吗: