MySQL - 按具体情况排序不起作用

MySQL - ORDER BY CASE WHEN doesn't work

我有一个包含两列的 table 'users' (id,full_name) 我使用 PHP 创建了一个搜索框,之后我搜索了如何使其排序通过相关性,我找到了解决方案,但它无法正常工作,所以如果有三行全名包含 John Smith,那么这里只给我一个结果是 table

 id  |   full_name
 1   |   John Smith
 2   |   John Smith
 3   |   John Smith

这是我的代码

$find = $_GET['q'];
$values=explode(" ", $find);
$sql="SELECT * FROM users WHERE";
$i=0;
foreach($values as $v)
{
$v=trim($v);
if($i==0)
{
$sql.=" full_name LIKE '%$v%'";
}
else
{
$sql.=" OR full_name LIKE '%$v%'";
}

$i++;
}
$sql.="GROUP BY full_name ORDER BY CASE WHEN full_name like '$find %' THEN 0
           WHEN full_name like '$find%' THEN 1
           WHEN full_name like '% $find%' THEN 2
           ELSE 3
      END, full_name";
$query3 = mysql_query($sql) or die(mysql_error());
while ($row3 = mysql_fetch_array($query3)) {
echo $row3['full_name']."<br/>";
}

所以我的问题是,当我搜索 John 时,它只给我一个结果,即 John Smith,而我希望它给我

如有任何帮助,我将不胜感激

删除 GROUP BY full_name 它将 John Smith 名称组合在一起。