mysql - 在 mysql 中使用 LIKE 搜索逗号分隔的字符串

标签 mysql

我有一个包含 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/

相关文章:

php - 将用户与他们创建的标签联系起来,而不会在 mysql 数据库中有重复的内容

mysql - 如何选择 null 设置为 "no"且默认设置为 "none"的空字段

mysql - 根据另一个表创建缺失行的查询

php - 在结果表中查找领导者和上一个之间的差异

mysql - 对用户重新排序 按积分排序的排名

php - 使用内连接并限制数据重复

php - 如何使用 PHP 打印存储在多维数组中并从数据库中获取的数据?

c++ - MySQL 连接器问题 - 链接甚至更多

mysql - 如何通过将数据从 a b c 列复制到 MySQL 中的列来更新表

MySQL:案例查询中的案例查询?