使用mysql LIKE在列内搜索多次

时间:2014-02-17 12:02:48

标签: mysql sql sql-like

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

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等 但因为喜欢本身很慢,我想知道是否有任何方法可以优化此查询

1 个答案:

答案 0 :(得分:1)

试试这个:

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