我有一个包含 3 列的表格,如下所示,
专家表
id - 1589
name - Jhonny
expert_in - 1,12,8 (Values similar like this)
experts_in 包含另一个表的外键
专家表
id - 1
expert_in - painting
在搜索专家的同时,我希望搜索专家在某些工作中是专家
SELECT * FROM `experts` WHERE expert_in LIKE 1%
以上查询为所有专家带来了 11、12、13...等。我只想要确切的词。我知道 LIKE 会带来一切。有没有办法在不改变表的情况下实现这一目标。
提前致谢。
最佳答案
你应该使用 REGEXP
。
试试这个查询:
SELECT * FROM experts
WHERE expert_in REGEXP '[[:<:]]1[[:>:]]';
输出:查看 SQLFiddle 上的现场演示
注意:您可以根据您的要求调整搜索字符串,以上 REGEXP 正在搜索确切的单词。
关于mysql - 在 mysql 中使用 LIKE 搜索逗号分隔的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37002260/