我被困3个小时,我想简单的事情,但一直在搜索互联网,并没有找到答案。 我有1,2,3,4或更多关键字和一个字符串来搜索其中的关键字。我正在寻找匹配所有关键字的regexp表达式。例如:
string =“这辆车是红色的,有很大的轮子”
关键字:车轮
return:true
关键字:车轮
return:true
关键字:汽车为红色
return:true
关键字:这很大
return:true
关键字:汽车是红色的
return:false(字符串中没有'小'字样)
我使用了这样一个mysql查询:
SELECT name, desc FROM table WHERE CONCAT(name, desc) REGEXP ($keyword1)($keyword2)
但它返回空字符串。什么应该是正确的regexp语法?
答案 0 :(得分:2)
最简单的解决方案是将AND
移出regexp并进入SQL:
SELECT name, desc
FROM table
WHERE CONCAT(name, desc) REGEXP ($keyword1)
AND CONCAT(name, desc) REGEXP ($keyword2)
否则,您的正则表达式必须包含N!
个长OR
个语句中的所有{{1}}个可能的订单,并且该长度变得非常非常快(有5个关键字,您需要构建120个不同的排序!)