MySQL LIKE语句将"o"和"ö"解释为相同

Chr*_*fer 5 mysql sql collation ruby-on-rails-3

我有一个连接到MySQL数据库的Rails 3应用程序.使用的编码是utf-8.该数据库以瑞典语连接大量数据并具有搜索功能.

当我搜索gotland(瑞典岛)时,Östergötland也会返回(一个郡)的结果.显然MySQL解释öo.

有没有一种简单的方法可以确保location LIKE '%gotland%'不返回包含的字段götland

干杯.

Veg*_*sen 8

我相信通过COLLATE utf8_swedish_ciLIKE声明之后添加,你会得到你想要的.

SELECT * FROM places WHERE name LIKE '%gotland%' COLLATE utf8_swedish_ci;
Run Code Online (Sandbox Code Playgroud)

或者,您可能希望使用latin1_swedish_ciif是否latin1是您的字符集.

我不是100%肯定这会修复一个LIKE语句中的字符比较,但它在逻辑上应该.

资料来源: