MySQL Match() Against()区分大小写



目前,我的数据库是字符集Latin1含义

SELECT * FROM TABLE MATCH(column1) AGAINST('"words here"' IN BOOLEAN MODE)

将只返回非敏感搜索。但问题是,我的数据库将搜索与不敏感和大小写敏感的搜索。有没有办法解决这个问题,以便我可以使用相同的表进行搜索?这是可能的吗?或者我将被迫制作一个带有latin1_bin字符集的表来查询用户的搜索是否区分大小写?

我想到了一种naïve方法:在两个不同的列(使用两个不同的索引)中存储文本两次。一个是latin1_bin(大小写敏感搜索),另一个是latin1_*_ci(大小写不敏感搜索)。

指出:

  1. 这是一个排序问题,而不是字符编码(又名字符集)
  2. 使用二进制排序(例如latin1_bin)的
  3. 还有其他副作用,例如将重音字符视为与非重音字符不同的字符(例如:" " <> "e").

相关内容

  • 没有找到相关文章

最新更新