首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按首字母字母排序自动完成建议

按首字母字母排序自动完成建议
EN

Stack Overflow用户
提问于 2015-04-24 08:36:40
回答 3查看 1.5K关注 0票数 3

我想按字母顺序对自动完成的建议进行排序。

现在它看起来像这样:http://i.imgur.com/EevFyv2.png

如果我输入字母C,我想显示如下的标签建议:

  • C
  • C++
  • 活动目录
  • 苹果脚本
  • BlueCoat

代码:

代码语言:javascript
运行
复制
$text = $mysqli->real_escape_string($_GET['term']);

$query = "SELECT * FROM autocomplete WHERE name LIKE '%$text%' ORDER BY name ASC";
$result = $mysqli->query($query);
$json = '[';
$first = true;
while($row = $result->fetch_assoc())
{
    if (!$first) { $json .=  ','; } else { $first = false; }
    $json .= '{"value":"'.$row['name'].'"}';
}
$json .= ']';

echo $json;

我希望有人能帮忙,谢谢。

EN

Stack Overflow用户

回答已采纳

发布于 2015-04-24 08:43:08

你需要

代码语言:javascript
运行
复制
SELECT * 
FROM autocomplete 
WHERE name LIKE '%$text%' 
ORDER BY (name LIKE '$text%') DESC, 
         name ASC

第一个order子句是一个布尔值,如果名称以$text开头,则为0,所以当您按DESC顺序排序时,以$text开头的值将移到列表的前面(其他地方只包含$text的值将移到末尾)。然后,第二个子句按字母顺序对两个“子列表”进行排序。

票数 6
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29842531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档