【问题标题】:How to change search result display order in dropdown如何更改下拉列表中的搜索结果显示顺序
【发布时间】:2014-09-22 10:18:01
【问题描述】:

当我搜索下拉菜单未列出的内容时,我在那里创建了 jquery 自动完成搜索

【问题讨论】:

  • order by title DESC
  • @SpYk3HH :我真正想要的是首先显示具有搜索查询作为单词开头的单词(chocoalte),而不是第二个单词(fruit chocalte)。请指教
  • 你的排序逻辑是什么?从它的样子来看,您尝试首先按字符串中出现的索引 cho 进行排序,然后按字母顺序排序?如果是这样,您的正确顺序应该是 1) 巧克力,2) 牛奶巧克力,3) 水果巧克力,4) abc per Chocolates
  • ORDER BY string LIKE '$searchr%' ?啊,埃德的想法是对的
  • 你的数据集有多大?

标签: jquery mysql sql autocomplete


【解决方案1】:

我首先按“cho”的位置排序,然后按整个标题作为决胜局。您可以使用LOCATE 函数找到该位置:

... ORDER BY LOCATE(searchstring, REPLACE(title, ' ', '')), title

【讨论】:

  • 我是否必须在我的查询中的 ORDER BY 之后输入这个,请指教
  • 是的,在你的查询中用这个替换你当前的 order by statement
  • 你会用这个替换你现有的order by title ASC。请注意,我所说的searchstring 是指您的$searchr 变量。我不想给出一个完整的例子,因为你应该使用 mysqli 或 PDO 做准备好的语句,而不是插入 $searchr 变量。
  • @EdGibbs : $query="SELECT DISTINCT title FROM content where REPLACE(title, ' ', '') like '%".$searchr."%'AND categories_id=83 ORDER BY LOCATE( '%".$searchr."%' , REPLACE(title, ' ', '')), title ";这是我提出的,但仍然是相同的结果,请指教
  • 你需要从LOCATE字符串中取出%:...ORDER BY LOCATE('".$searchr."', REPLACE(title, ' ', '')), title";
猜你喜欢
  • 2020-06-28
  • 1970-01-01
  • 1970-01-01
  • 2015-11-03
  • 2014-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-22
相关资源
最近更新 更多