【发布时间】:2012-05-11 23:26:36
【问题描述】:
我被困了 3 个小时,我猜这很简单,但一直在搜索互联网并没有找到答案。 我有 1、2、3、4 个或更多关键字和一个用于在其中搜索关键字的字符串。我正在寻找匹配所有关键字的正则表达式。比如:
string = "这辆车是红色的,有大轮子"
关键词:车轮
返回:真
关键词:车轮车
返回:真
关键词:汽车是红色的
返回:真
关键词:这很大
返回:真
关键词:小车是红色的
return: false(字符串中没有“小”字)
我用这样一个mysql查询:
SELECT name, desc FROM table WHERE CONCAT(name, desc) REGEXP ($keyword1)($keyword2)
但它返回空字符串。什么应该是正确的正则表达式语法?
【问题讨论】:
-
调用语言是什么? PHP?
-
MySQL 中的正则表达式不支持反向引用,因此您需要明确说明所有可能的顺序:
[[:<:]]keyword1[[:>:]].*[[:<:]]keyword2[[:>:]]|[[:<:]]keyword2[[:>:]].*[[:<:]]keyword1[[:>:]]。不漂亮。 -
@minitech:是的,我使用 php 5.3
-
eggyal: 绝对不漂亮 - 我一直在寻找没有几十个 WHERE LIKE 的更优雅的方式......我想没有“更优雅的方式”
标签: mysql regex syntax keyword