加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 湛江站长网 (https://www.0759zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

mysql中的in排序 mysql按in中顺序来排序

发布时间:2022-09-19 16:01:30 所属栏目:教程 来源:
导读:  假设mysql排序,有如下的sql语句:

  复制代码 代码示例:

  select * from table where id IN (3,6,9,1,2,5,8,7);

  这样的情况取出来后,其实,id还是按1,2,3,4,5,6,7,8,9,排序的,但如果真要
  假设mysql排序,有如下的sql语句:
 
  复制代码 代码示例:
 
  select * from table where id IN (3,6,9,1,2,5,8,7);
 
  这样的情况取出来后,其实,id还是按1,2,3,4,5,6,7,8,9,排序的,但如果真要按IN里面的顺序排序,应该如何操作呢?
 
  复制代码 代码示例:
 
  select * from table where id IN (3,6,9,1,2,5,8,7) order by field(id,3,6,9,1,2,5,8,7);
 
  出来的顺序就是指定的顺序了。
 
  该排序的效率:
 
  FIELD(str,str1,str2,str3,…)
 
  Returns the index (position) of str in the str1, str2, str3, … list. Returns 0 if str is not found.
 
  排序过程:
 
  把选出的记录的 id 在 FIELD 列表中进行查找,并返回位置,以位置作为排序依据。
 
  这样的用法,会导致 Using filesort,是效率很低的排序方式。
 
  除非数据变化频率很低,或者有长时间的缓存,否则不建议用这样的方式排序。
 
  建议在程序代码中自行排序。至于这种排序会不会有什么性能瓶颈,建议大家多做测试。
 

(编辑:PHP编程网 - 湛江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!