MySQL Match()反对()区分大小写

时间:2014-05-22 07:39:58

标签: mysql match case-sensitive against

目前,我的数据库是charset Latin1,意思是

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

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

1 个答案:

答案 0 :(得分:1)

我想到了一种天真的方法:将文本存储在两个不同的列中(两个不同的索引)。一个latin1_bin(用于区分大小写的搜索),另一个用latin1_*_ci(用于不区分大小写的搜索)。

附注:

  1. 这是collation的问题,而不是字符编码(a.k.a.charset)
  2. 使用二进制排序规则(例如latin1_bin)会产生其他副作用,例如将重音字符视为与非重音字符不同(例如“é”<>“e”)。