Php 省略mysql查询中的重复值,使json文件中的每个值只有一个

Php 省略mysql查询中的重复值,使json文件中的每个值只有一个,php,jquery,mysql,json,Php,Jquery,Mysql,Json,这是我的json.php的查询部分,它是我的jquery ui自动完成输入的源文件 $term = trim(strip_tags($_GET['term']));//retrieve the search term that autocomplete sends $qstring = "SELECT nombre as value FROM ingredientes WHERE nombre LIKE '%".$term."%'"; $result = mysql_query($qstrin

这是我的json.php的查询部分,它是我的jquery ui自动完成输入的源文件

$term = trim(strip_tags($_GET['term']));//retrieve the search term that autocomplete sends

$qstring = "SELECT nombre as value FROM ingredientes WHERE nombre LIKE '%".$term."%'";
$result = mysql_query($qstring);//query the database for entries containing the term

while ($row = mysql_fetch_array($result,MYSQL_ASSOC))//loop through the retrieved values
{
    $row['value']=htmlentities(stripslashes($row['value']));
    //$row['id']=(int)$row['id'];
    $row_set[] = $row;//build an array
}
echo json_encode($row_set);//format the array into json data
问题在于,将我的返回结果归档为:

[{"value":"one"},{"value":"one"},{"value":"ones"},{"value":"ona"}]
因此,这个词将被建议两次。我怎样才能防止呢

$qstring = "SELECT DISTINCT nombre as value 
    FROM ingredientes 
    WHERE nombre LIKE '%".$term."%'";


请务必使用mysql\u real\u escape\u string尽管…

谢谢!我知道这不是问题的一部分,但我如何按“单词匹配”等级排序?定义“单词匹配等级”?类似于“%$term”DESC,类似“%$term”DESC,LENGHT(nombre)ASC,nombre ASC的类似于
ORDER BY nombre='$term'DESC,nombre ASC的类似于“%$term”DESC,LENGHT(nombre)ASC,nombre ASC
?这是否适用?它不会返回结果。。我的意思是首先显示最相似的单词(或者是自动完成feautre的工作?)OTOH,是的,应该可以工作,调试它,只是在没有测试的情况下完成了:顺序(1)精确匹配,(2)开始是相同的,(3)最短的字符串匹配(4)按字母顺序排列。如果没有返回任何内容,我们在某个地方引入了语法错误,请尝试找出它是什么(
echo mysql_error();
)。我一直都在犯这个错误,netbeans和类似的工具应该开始检测到一个xD
$qstring = "SELECT nombre as value 
    FROM ingredientes 
    WHERE nombre LIKE '%".$term."%'
    GROUP BY nombre";