首页 > 数据库 >MySQL自定义排序ORDER BY FIELD

MySQL自定义排序ORDER BY FIELD

时间:2023-01-16 15:14:02浏览次数:48  
标签:LOCATE 自定义 substr FIELD str 排序 ORDER

在一些场景中, 有场景A查询出一个已经排好顺序的id , 需要到场景B中查询这些, 使用 mysql 中的 WHERE ** IN (****) , 查询出来的结果并不是按照传入的list排序的.
但是又不是按照场景B中的某一个字段排序的.
这时候需要自定义排序:ORDER BY FIELD(字段名,内容1,内容2,....),如下:

会按照字段名按照字符串内容1,内容2,...的顺序返回查询到的结果集。如果表中字段值不存在,就放在结果集最前面返回。
注意: ORDER BY FIELD() 中不能直接传入list,要用'str' , 使用foreach遍历的时候,直接逗号分割即可.


其他方法:
LOCATE()自定义排序:
LOCATE(substr,str)
返回字符串substr中第一次出现子字符串的位置 str
LOCATE(substr,str,pos)
返回字符串substr中第一个出现子 字符串的 str位置,从位置开始 pos。0 如果substr不在,则 返回str。返回 NULL如果substr 或者str是NULL
SELECT LOCATE('c','abc') 这个c在第二个位置,返回3
使用字符串出现顺序,可以ORDER BY LOCATE(字段名,'三星','苹果')
INSTR()自定义排序:
INSTR(str,substr) 在一个字符串(str)中搜索指定的字符(substr),返回发现指定的字符的位置;
可以说是反着的LOCATE()
用法:ORDER BY INSTR('三星','苹果',字段名)
CASE WHEN曲线救国

还有数据字典排序,我不喜欢用.常用还是FIELD()

标签:LOCATE,自定义,substr,FIELD,str,排序,ORDER
From: https://www.cnblogs.com/Sappy/p/17055407.html

相关文章

  • OrderedDict python有序字典
    importcollectionsd1=collections.OrderedDict()d1['b']='B'd1['a']='A'd1['c']='C'd1['2']='2'd1['1']='1'#OrderedDict([('b','B......
  • 「HTML+CSS」自定义加载动画【049】
    前言Hello!小伙伴!首先非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~哈哈自我介绍一下昵称:海轰标签:程序猿一只|C++选手|学生简介:因C语言结识编程,随后转入计算......
  • 「HTML+CSS」--自定义加载动画【044】
    前言Hello!小伙伴!首先非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~哈哈自我介绍一下昵称:海轰标签:程序猿一只|C++选手|学生简介:因C语言结识编程,随后转入计算......
  • 「HTML+CSS」--自定义加载动画【045】
    前言Hello!小伙伴!首先非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~哈哈自我介绍一下昵称:海轰标签:程序猿一只|C++选手|学生简介:因C语言结识编程,随后转入计算......
  • 「HTML+CSS」--自定义加载动画【043】
    前言Hello!小伙伴!首先非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~哈哈自我介绍一下昵称:海轰标签:程序猿一只|C++选手|学生简介:因C语言结识编程,随后转入计算......
  • springboot反射 + 自定义注解
    利用反射调用方法获取bean寻找bean中指定的方法method(方法名可能匹配,参数类型不匹配,故还要分析参数类型)利用method.invoke方法Spring已经为此实现了完整的机制,......
  • Potree 003 基于Potree Desktop创建自定义工程
    1、第三方js库第三方库js库选择dojo,其官网地址为https://dojotoolkit.org/,git地址为https://github.com/dojo/dojo,demo地址为https://demos.dojotoolkit.org/demos/,如果打......
  • border树模板
    P5829【模板】失配树关键这里的前缀和后缀是不能包含自己的,其他就是板子代码#include<bits/stdc++.h>usingnamespacestd;constintM=1e6+5;chars[M];intne......
  • 自定义异常处理
    1.MyAccessDeniedHandler类@ComponentpublicclassMyAccessDeniedHandlerimplementsAccessDeniedHandler{@Overridepublicvoidhandle(HttpServletRequ......
  • STL----set与unordered_set map 与 unordered_map
    《set与unordered_set》首先介绍一下set:   set的在算法竞赛中主要作用是去重,附带一点可以自动排序的好处 unordered_set与set的主要区别是set是自动排序的......