0

我想执行站点搜索。问题是我要搜索 3 列,如果搜索查询是这些字段中的任何一个,结果中将显示一行。我的意思是如果有人搜索“keyword1关键字2关键字3”,我们搜索的列是页面名称,标题和描述,所以如果关键字1只在标题中,关键字2只在名称中,关键字3只在描述中,这将是一个有效的结果。

我只是无法弄清楚这背后的逻辑。我尝试在带有 OR 运算符的 sql 中使用正则表达式,但这仍然需要标题、名称或描述中的所有关键字。知道我是如何做到这一点的吗?

4

1 回答 1

2

请看MySQL LIKE IN()?

您可以将空格替换为 | 使用 str_replace 并构建如下查询:

SELECT * from mytable where pagename REGEXP 'keyword1|keyword2|keyword3' and title REGEXP 'keyword1|keyword2|keyword3' and description REGEXP 'keyword1|keyword2|keyword3';
于 2013-06-10T05:57:40.140 回答