gpt4 book ai didi

php - 自动完成功能的专业搜索查询细化

转载 作者:行者123 更新时间:2023-11-29 14:57:53 24 4
gpt4 key购买 nike

我正在 mysql 表上执行自动完成函数查询,该表具有许多类似标题的实例,通常是不同年份的内容,例如“2010 Chevrolet Lumina”或“Chevrolet Lumina 2009”等。

我当前使用的查询是:

$result = mysql_query("SELECT * FROM products WHERE MATCH (name) AGAINST ('$mystring') LIMIT 10", $db);

$mystring 变量的构建如下:

$queryString = addslashes($_REQUEST['queryString']);
if(strlen($queryString) > 0) {
$array = explode(' ', $queryString);
foreach($array as $var){
$ctr++;
if($ctr == '1'){
$mystring = '"' . $var . '"';
}
else {
$mystring .= ' "' . $var . '"';
}
}
}

我需要做的就是以某种方式对事物进行分组,这样自动建议下拉列表中实际上只会显示一个非常相似的版本,为其他包含雪佛兰的产品留出空间。目前,它正在展示所有 10 个地点,其中充满了不同年份、选项等的相同产品。

这个应该可以让你们中的一些聪明人得到很好的锻炼:)

最佳答案

我认为最好的方法是在产品表上创建一个新字段,例如分类。所有车型都将以相同的分类输入(例如“雪佛兰”)。然后,您仍然可以 MATCH AGAINST name,但 GROUP BY classification。假设您正在使用 MySQL,您可以稍微作弊,然后选择值并与不作为分组依据的值进行匹配。从技术上讲,在 SQL 中,这会给出未定义的结果,许多 SQL 引擎甚至不会让您尝试这样做,但 MySQL 允许您这样做——并且它返回或多或少匹配的随机样本。因此,例如,如果您执行上述查询并按分类分组,则自动完成程序中只会显示一个模型(几乎是随机选择的)。

关于php - 自动完成功能的专业搜索查询细化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4094919/

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