Answers:
更快的方法是:
WHERE interests LIKE '%sports%' OR interests LIKE '%pub%'
这是:
WHERE interests REGEXP 'sports|pub'
在此处找到此解决方案:http : //forums.mysql.com/read.php?10,392332,392950#msg-392950
有关REGEXP的更多信息,请访问:http ://www.tutorialspoint.com/mysql/mysql-regexps.htm
(select group_concat(myColumn separator '|') from..)
您也可以使用 RLIKE
。
例如:
SELECT * FROM TABLE_NAME WHERE COLNAME RLIKE 'REGEX1|REGEX2|REGEX3'
您的查询应为 SELECT * FROM `table` WHERE find_in_set(interests, "sports,pub")>0
我的理解是,您将利益存储在表的一个字段中,这是一个误解。您绝对应该有一个“兴趣”表。
SELECT * FROM table WHERE find_in_set(interests, 'sports,pub')
,但是这种技术在大多数情况下都可能胜过正则表达式。
或者,如果您只需要匹配单词的开头:
WHERE interests LIKE 'sports%' OR interests LIKE 'pub%'
您可以使用regexp脱字号匹配项:
WHERE interests REGEXP '^sports|^pub'