Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想执行站点搜索。问题是我要搜索 3 列,如果搜索查询是这些字段中的任何一个,结果中将显示一行。我的意思是如果有人搜索“keyword1关键字2关键字3”,我们搜索的列是页面名称,标题和描述,所以如果关键字1只在标题中,关键字2只在名称中,关键字3只在描述中,这将是一个有效的结果。
我只是无法弄清楚这背后的逻辑。我尝试在带有 OR 运算符的 sql 中使用正则表达式,但这仍然需要标题、名称或描述中的所有关键字。知道我是如何做到这一点的吗?
请看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';