_table WHERE r_title LIKE ? OR r_level LIKE ? -6ren">
gpt4 book ai didi

php - 允许使用多个关键字在多个列中进行搜索

转载 作者:太空宇宙 更新时间:2023-11-03 11:53:40 26 4
gpt4 key购买 nike

这是我的场景:我有一个搜索多个列的搜索

$sql = "SELECT * FROM $this->_table WHERE r_title LIKE ?
OR r_level LIKE ?
OR r_section LIKE ?
OR r_excerpt LIKE ?
ORDER BY r_id DESC"

这很好用,但例如标题可以是 "Squash" 部分可以是 "Soup" 所以如果用户输入 "squash soup " 它不返回任何结果。

这有意义吗?我怎样才能让它提供更相关的合并响应?

技术上该部分将被称为“Soups”而不是“Soup”,如果该部分真的是soups,我仍然希望它返回“Squash Soup”,只是忽略“s”

最佳答案

您需要使用 MySQL's search functionality .像这样:

SELECT * FROM table
WHERE MATCH(r_title, r_level, r_section, r_excerpt)
AGAINST (? IN BOOLEAN MODE)
ORDER BY r_id DESC

Boolean search , 默认情况下,查找搜索短语中的任何单词,因此不需要进行预处理。你需要确保你的表有 appropriate indices然而在他们身上:

ALTER TABLE table
ADD FULLTEXT INDEX (r_title),
ADD FULLTEXT INDEX (r_level),
ADD FULLTEXT INDEX (r_section),
ADD FULLTEXT INDEX (r_excerpt);

关于php - 允许使用多个关键字在多个列中进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34358192/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com