我有一个连接到MySQL数据库的Rails 3应用程序。使用的编码是utf-8。该数据库以瑞典语连接大量数据并具有搜索功能。
当我搜索gotland
(瑞典岛)时,也会返回Östergötland
(一个郡)的结果。显然,MySQL将ö
解释为o
。
是否有一种简单的方法可以确保location LIKE '%gotland%'
不会返回包含götland
的字段?
干杯。
答案 0 :(得分:8)
我相信通过在COLLATE utf8_swedish_ci
语句后添加LIKE
,您将得到您想要的内容。
SELECT * FROM places WHERE name LIKE '%gotland%' COLLATE utf8_swedish_ci;
或者,如果latin1_swedish_ci
是您的字符集,则可能需要使用latin1
。
我并非100%确定这会修复LIKE
语句中的字符比较,但逻辑上应该这样做。
来源: