我想进行网站搜索。问题是我想搜索3列,如果搜索查询是这些字段中的任何一个,结果中将显示一行。 我的意思是,如果有人搜索“keyword1 keyword2 keyword3”,我们搜索的列是页面名称,标题和描述,因此如果keyword1仅在标题中,则keyword2仅在名称中,而keyword3仅在描述中,这将是一个有效的结果。
我无法弄清楚这背后的逻辑。我尝试在带有OR运算符的sql中使用regex,但这仍然需要标题,名称或描述中的所有关键字。知道我是怎么做到的吗?
答案 0 :(得分:2)
您可以用|替换空格使用str_replace并构建如下的查询:
SELECT * from mytable where pagename REGEXP 'keyword1|keyword2|keyword3' and title REGEXP 'keyword1|keyword2|keyword3' and description REGEXP 'keyword1|keyword2|keyword3';