mysql - 在mysql中查找具有常用词的字符串

标签 mysql

我正在使用 mysql,我有 2 个表

emp(id int, name varchar, dept_id int)
dept(id int, name varchar)

我想让员工有以下限制: 员工姓名与其部门名称至少有1个共同词。

解决方案可以是select语句还是存储过程?但是欢迎任何解决方案。

最佳答案

使用REGEXP并从 emp.name 创建一个搜索字符串。这是 SQLFiddle demo

select emp.id,
       emp.name emp_name, 
       dept.name dep_name from emp
join dept
where emp.dept_id=dept.id
      AND

      dept.name regexp 
        CONCAT('([[:<:]]',
               REPLACE(
                   TRIM(emp.name),
                   ' ',
                   '[[:>:]]|[[:<:]]'
               ),
               '[[:>:]])');

关于mysql - 在mysql中查找具有常用词的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12513850/

相关文章:

mysql - 从大型数据存储中获取数据时如何处理存储限制?

php - 更新声明无效

java - Spring Boot 和 MySQL 的连接已关闭

php - 弃用的 MySql 函数

php - 如何比较两个选择?

mysql触发使用DOB字段和基于计算年龄的自动存储类别计算年龄到数据库

php - 为什么我不应该在 PHP 中使用 mysql_* 函数?

sql - VARCHAR 作为数据库中的外键/主键好还是坏?

php - 将数据从 CSV 文件插入数据库。只插入最后一行

mysql - Sequelize 与同一个表的关联