【发布时间】:2012-07-27 18:32:14
【问题描述】:
我有一个以 UTF-8 编码的 MySQL 数据库,其中包含英语和匈牙利语文本。
我正在开发一个搜索功能,结果是可以接受的,除了一件事:
搜索包含“á”、“é”、“í”、“ó”、“ö”、“ő”、“ú”、“ü”、“ű” 的字符串会得到所有出现的结果,但还显示“a”、“e”、“i”、“o”、“u”的结果。这样搜索就不会很精确,因为它会产生很多不需要的记录,例如,我们得到了所有“bar”的“bar”(显然不一样)。
我以简单的方式通过 LIKE 进行了搜索(尽管它对于全词搜索或确切的词序有很多变体,但基本是相同的):
SELECT * FROM table WHERE coloumn LIKE 'word'
如何避免不需要的结果?我不是 SQL 专家,也从未进行过这样的搜索,所以我需要一点帮助...
谢谢!
【问题讨论】:
-
您应该查看this question(如果您还没有)。它不包含解决方案,但它可能仍然有帮助。
-
我查看了它,似乎在所有排序规则中提到的字符都是相同的(á=a、é=e 等)。有人在这个问题上提到了这个link。添加排序规则会是解决方案吗?
标签: mysql search foreign-keys character filtering