Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL将字符串与国家字符进行比较_Mysql_String - Fatal编程技术网

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”字段)后,它开始正常工作:-)

您使用的是哪个字符集(和排序规则)您看过这篇文章吗: