我需要在一个列中搜索一个字符串,多次搜索同一字符串的变体,所以我这样做了

SELECT *
FROM `users`
WHERE user = 'king'
OR alias = 'king'
OR aliases LIKE '%,king%'
OR aliases LIKE '%king,%'
OR aliases LIKE '%king,%'


aliases列将包含用逗号分隔的单词,例如king,queen,knight
但是因为像它一样慢,所以我想知道是否有什么方法可以优化此查询

最佳答案

尝试这个:

SELECT *
FROM `users`
WHERE user = 'king'
OR alias = 'king'
OR FIND_IN_SET ('king', aliases)>0;

08-06 17:26