gpt4 book ai didi

php - MySQL匹配顺序无关紧要的关键字

转载 作者:行者123 更新时间:2023-11-28 23:41:04 25 4
gpt4 key购买 nike

我想在数据库中将一串以逗号分隔的关键字与另一串以逗号分隔的关键字进行匹配,其中关键字的顺序无关紧要。

例子

关键字,分隔符,逗号 将匹配:

  • separated,keywords,commas,by(列表中的所有关键字都匹配并出现)

  • separated,keywords,commas,by,keywords(重复关键字)

并且不匹配:

  • separated,keywords,commas(less keywords)
  • keywords,separated,by,commas,extra(更多非重复关键字)

示例用法

例如,我有一串关键字(keywords,separated,by,commas)。我想检查数据库是否有 keywords 索引列等于该列表,而不管顺序如何。

我希望能够像这样检查它:

$keywords = "keywords,seperated,by,commas";
$query = "SELECT * FROM search WHERE keywords = ".$keywords;
$result = mysqli_query($link, $query);
$results = mysqli_num_rows($result);
if ($results) echo "Keywords found in database";

最佳答案

您需要为每个术语做一个选择。

试试这个:

$keywords = "keywords,seperated,by,commas";
$words = explode(',', $keywords);
$where = '';
foreach($words as $word) {
$where .= " keywords like '%$word%' and ";
}
$where = rtrim($where, ' and ');
$query = "SELECT * FROM search WHERE " . $where;
echo $query;

这应该给你一个查询:

SELECT * FROM search WHERE  keywords like 'keywords' and  keywords like 'seperated' and  keywords like 'by' and  keywords like 'commas'

这将只返回包含所有关键字的行,而不考虑顺序。

关于php - MySQL匹配顺序无关紧要的关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34384930/

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