使用REGEX使用AND条件查询多个LIKE

时间:2013-08-19 11:50:29

标签: mysql

我想使用REGEXP搜索相同的字段但使用多个值。 有可能吗?

SELECT 
  * 
FROM
  posts 
WHERE keyword LIKE '%ipad%' 
  AND keyword LIKE '%iphone%' 
  AND keyword LIKE '%nokia%' ;

此查询用于OR,我想将其转换为AND条件

SELECT * FROM posts WHERE keyword REGEXP 'ipad|iphone|nokia';

1 个答案:

答案 0 :(得分:0)

您的keyword字段可以包含多个值(设备)吗?喜欢ipad;iphone;nokia

如果是这样,这是不好的做法。它违反了First Normal Form,这是表格设计不良的一个症状。尽管如此,使用多个LIKEAND子句的方式仍然有效。

在MySQL中将其转换为REGEXP语法并不容易,绝对不值得。有关详细信息,请参阅此post