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

3

目前,我的数据库字符集是 Latin1 ,这意味着

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

仅返回大小写不敏感的搜索结果。然而问题在于,我的数据库将被搜索大小写敏感和不敏感的搜索。有没有办法解决这个问题,以便我可以使用同一张表进行搜索?这是否可能,还是我必须创建一个采用 latin1_bin 字符集的表来查询用户的大小写敏感搜索。

1个回答

1
我脑海中浮现出一个天真的想法:在两个不同的列中存储您的文本(具有两个不同的索引)。一个使用latin1_bin(用于区分大小写的搜索),另一个使用latin1_*_ci(用于不区分大小写的搜索)。
注:
  1. 这是排序规则问题,而不是字符编码(也称为字符集)。
  2. 使用二进制排序规则(例如latin1_bin)会产生其他副作用,例如将重音字符视为与其非重音对应字符不同(例如,“é”<>“e”)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接