gpt4 book ai didi

php - 如何使用 MYSQL "LIKE"正确检查关键字

转载 作者:行者123 更新时间:2023-11-29 07:29:06 25 4
gpt4 key购买 nike

我想知道如何使用 SQL“LIKE”正确检查关键字;

我有一个看起来像这样的脚本:

$search_keywords = $_POST['search-keywords'];
$search_keywords = str_replace(" ","%", $search_keywords);
$search_keywords = '%' . $search_keywords . '%';
$search = $odb -> query("SELECT * FROM `cars` WHERE `keywords` LIKE '".$search_keywords."' ORDER BY `id` ASC");
$rows = $search->rowCount();
if ($rows > 0) {//Loop}

事实上,它是有效的,但只有当数据库中的关键字看起来像这样时:

audi, a3, silver 我搜索 audi a3

如果我尝试这样搜索:a3 audi 它不起作用

有什么提示吗?

最佳答案

您需要将 $search_keywords 拆分成单独的词,然后搜索每个词。

要在逗号分隔的列表中搜索项目,请使用 FIND_IN_SET() 而不是 LIKELIKE '%audi%' 也将匹配 audi-quatro。

$keyword_array = explode(" ", $_POST['search_keywords']);
foreach ($keyword_array as &$keyword) {
$keyword = "FIND_IN_SET('$keyword', keywords)";
}
$tests = implode(' AND ', $keyword_array);
// $tests contains something like: FIND_IN_SET('a3', keywords) AND FIND_IN_SET('audi', keywords)
$sql = "SELECT * FROM `cars` WHERE $tests ORDER BY `id` ASC";
$search = $odb->query($sql);

关于php - 如何使用 MYSQL "LIKE"正确检查关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52414673/

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