我遇到了一个小麻烦:
SELECT * FROM tableName tn WHERE LOWER(tn.name) = LOWER('place_string_here');
没关系,当它完美契合时:
tn.name =橙树
place_string_here =橙树
但我的问题是:民族人物,例如:
哈斯特加德
我希望“Hästgård”适合:Hästgård、Hästgard、Hastgård 和/或 Hastgard
有什么聪明的方法可以做到这一点吗?
您可以使用:
您的查询:
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 |
我在该字段上有 latin1_swedish_ci COLLATION,这会导致错误。将排序规则更改为 utf8_general_ci (“名称”字段)后,它开始正常工作:-)