当前位置: 首页 > 编程笔记 >

mysql通过find_in_set()函数实现where in()顺序排序

微生青青
2023-03-14
本文向大家介绍mysql通过find_in_set()函数实现where in()顺序排序,包括了mysql通过find_in_set()函数实现where in()顺序排序的使用技巧和注意事项,需要的朋友参考一下

本文章来为各位介绍一篇关于mysql 实现按 where in () 中的顺序排序,用find_in_set() 函数的教程,希望此教程能够对各位有所帮助。

select * from table where id in ('783',' 769',' 814',' 1577',' 1769') 
order by find_in_set( id, '783, 769, 814, 1577, 1769' ) 

查出来:

769
1577
814
1769
783

为什么不是 783 769 814 1577 1769 的顺序?

注意:经查找后原因出在find_in_set里面,如果find_in_set的第二个参数中有空格将导致顺序乱掉,因为mysql查询之前不会给你trim空格符。

so...

去空格后:

select * from table where id in ('783',' 769',' 814',' 1577',' 1769') 
order by find_in_set( id, '783,769,814,1577,1769' ) 

注意只是去掉了
'783,769,814,1577,1769' 中的空格

再查出来:
783
769
814
1577
1769

至此我们实现用where in find_in_set 的排序,find_in_set 还可实现多条件排序 试试哦

总结

以上就是本文关于mysql通过find_in_set()函数实现where in()顺序排序的全部介绍,感兴趣的朋友可以参阅:MySQL数据库表分区注意事项大全【推荐】、几个比较重要的MySQL变量、sql和MySQL的语句执行顺序分析等,若有不足之处,欢迎大家留言指正。希望对大家有所帮助。

 类似资料:
  • 本文向大家介绍javascript排序函数实现数字排序,包括了javascript排序函数实现数字排序的使用技巧和注意事项,需要的朋友参考一下 javascript排序函数实现数字排序 以上所述就是本文的全部内容了,希望大家能够喜欢。

  • 本文向大家介绍通过c++的sort函数实现成绩排序功能,包括了通过c++的sort函数实现成绩排序功能的使用技巧和注意事项,需要的朋友参考一下 sort函数用于C++中,对给定区间所有元素进行排序,默认为升序,也可进行降序排序。sort函数进行排序的时间复杂度为n*log2n,比冒泡之类的排序算法效率要高,sort函数包含在头文件为#include<algorithm>的c++标准库中。 题目描述

  • 本文向大家介绍C#通过IComparable实现ListT.sort()排序,包括了C#通过IComparable实现ListT.sort()排序的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#通过IComparable实现ListT.sort()排序的方法,分享给大家供大家参考之用。具体方法如下: 通常来说,List<T>.sort()可以实现对T的排序,比如List<int>.so

  • 问题内容: 我有一个带有产品的mysql表。 这些产品具有类别ID和名称。 我想做的是按类别ID顺序降序排列,然后按产品名称升序排列。 我想要的是 不幸的是,这是行不通的。 甚至可以在mysql中定义第二个排序列的排序顺序吗? 问题答案: 您可以通过以下方式进行操作: 看看优化

  • 问题内容: 当我使用IN从表中选择一组行时,例如 有一种SQL技巧可以按照IN集合中给定的顺序恢复它们吗? 因此,在示例中,假设x具有ID为23、55、44和12的行,则将按该顺序返回这四行。 问题答案:

  • 本文向大家介绍mysql中find_in_set函数的基本使用方法,包括了mysql中find_in_set函数的基本使用方法的使用技巧和注意事项,需要的朋友参考一下 前言 这是我最近新接触到的一个函数, 我在项目中的使用场景是这样的: 有一个应用类型表,表中有parentId字段和parentIds字段,前者为父级id,后者为多级父级id,在库中都是varchar类型,parentIds由多个父

  • 问题内容: 我将要有一个固定的项目清单,直到有一个随机化步骤,我才能运行查询直到执行该查询为止。 我想要以下内容: 假设is_launch_set将返回1,3,7,11,但已被随机分配到以下位置: 关于如何实现这一目标的任何想法?我在想也许是一个find_in_set,但不是很确定。 问题答案: 您可以使用以下任一方法来做到这一点: 要么 要么

  • 问题内容: 我将以下查询与MySQL 5.5(或早期版本)一起使用了多年,没有任何问题: 结果的顺序总是按照我的需要降序。 上周,我刚刚迁移到新的MySQL版本(实际上,我迁移到了MariaDB 10.0.14),现在具有相同数据库的相同查询不再按降序排序。它以升序排序(或使用自然顺序排序,实际上不确定)。 因此,有人可以告诉我这是一个错误还是这是最新版本的MySQL / MariaDB中行为的改