mysql - mySql REGEXP 中的逻辑与运算符?

标签 mysql regex

我使用 MySql 正则表达式:

SELECT * FROM myTable
WHERE title REGEXP "dog|cat|mouse";

数据集很小,所以我不关心性能。我更喜欢这个而不是 LIKE 表示法,因为我不必连接一堆“LIKE”语句。

但是,上述符号使用逻辑 OR 运算符。是否有逻辑 AND 运算符,以便只匹配包含所有关键字的行?

(我使用的是 InnoDB,所以全文搜索不是一个选项)

最佳答案

除了连接 AND 之外,真的没有什么好的解决方案:

SELECT * FROM myTable
WHERE title REGEXP "dog"
AND title REGEXP "cat"
AND title REGEXP "mouse"

否则正则表达式将如下所示:

SELECT * FROM myTable
WHERE title REGEXP "(dog.*cat.*mouse)|(dog.*mouse.*cat)|(mouse.*dog.*cat)|(mouse.*cat.*dog)|(cat.*dog.*mouse)|(cat.*mouse.*dog)"

关于mysql - mySql REGEXP 中的逻辑与运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15687136/

相关文章:

php - 更新时插入。复合键

mysql - 列虎钳或行虎钳哪个是更快、更好的实现方法

mysql - 计算查询中的百分比

python - 重复正则表达式的一部分?

MySQL 两列表作为主键

java - Docker Image 无法正常启动

javascript - jquery 驼峰式实现

regex - 用 sed 或 replace 替换文件中的特定模式

c# - 如何在 C# 中编译正则表达式

javascript - 用对象属性替换模板字符串中的键