0

我被困了 3 个小时,我猜这很简单,但一直在搜索互联网并没有找到答案。我有 1、2、3、4 个或更多关键字和一个用于在其中搜索关键字的字符串。我正在寻找匹配所有关键字的正则表达式。例如:

string = "这辆车是红色的,有大轮子"

关键词:车轮

返回:真

关键词:轮子车

返回:真

关键词:车是红色的

返回:真

关键词:这个很大

返回:真

关键词:车红小

返回:false(字符串中没有“小”字)

我使用这样的mysql查询:

SELECT name, desc FROM table WHERE CONCAT(name, desc) REGEXP ($keyword1)($keyword2)

但它返回空字符串。什么应该是正确的正则表达式语法?

4

1 回答 1

2

最简单的解决方案是将正则AND表达式移出并放入 SQL:

SELECT name, desc
FROM table
WHERE CONCAT(name, desc) REGEXP ($keyword1)
  AND CONCAT(name, desc) REGEXP ($keyword2)

否则,您的正则表达式将不得不N!在长长的OR语句链中包含所有可能的顺序,并且长度增长得非常非常快(使用 5 个关键字,您需要构建 120 个不同的顺序!)

于 2012-05-02T13:25:01.030 回答