MySQL自定义order by排序规则

数据表

create table tb_user
(id      bigint auto_incrementprimary key,name    varchar(16)  not null,age     int          not null,address varchar(128) null
);INSERT INTO test.tb_user (id, name, age, address) VALUES (1, '张三', 18, 'China');
INSERT INTO test.tb_user (id, name, age, address) VALUES (2, '李四', 19, 'China');
INSERT INTO test.tb_user (id, name, age, address) VALUES (3, 'jack', 20, 'America');
INSERT INTO test.tb_user (id, name, age, address) VALUES (4, 'jane', 22, 'America');
INSERT INTO test.tb_user (id, name, age, address) VALUES (5, 'pig', 19, 'Japan');
INSERT INTO test.tb_user (id, name, age, address) VALUES (6, 'cat', 22, 'Japan');

一、使用field()函数自定义顺序

① 一个字段排序

优先China,其次America,最后Japan

selectname, address
fromtb_user
order byfield(address, 'China', 'America', 'Japan') asc

asc可省略,如果有些数据不在指定范围内,则从最后开始按照默认排序

② 多个字段排序

先按照address升序排序,相同再按照name降序排序

selectname, address
fromtb_user
order byfield(address, 'China', 'America', 'Japan') asc,field(name, '李四', '张三', 'jane', 'jack') desc

二、使用case when自定义排序规则

① 一个字段

优先China,其次America,最后Japan

selectname, address
fromtb_user
order bycase addresswhen 'China' then  1when 'America' then 2when 'Japan' then 3end,address asc

asc可省略

② 多个字段

先按照address排序,相同再按照name排序

selectname, address
fromtb_user
order bycase addresswhen 'China' then  1when 'America' then 2when 'Japan' then 3end,address asc,case namewhen '李四' then  1when '张三' then 2when 'jane' then 3when 'jack' then 4end,name desc

三、随机排序

使用rand()函数随机排序,不根据任何字段,每次的顺序都是随机的

selectname, address
fromtb_user
order byrand()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/91262.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/91262.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

112套开题答辩行业PPT模版

毕业答辩开题报告,毕业答辩,论文设计PPT,清新论文答辩PPT模版,毕业论文答辩开题报告PPT,答辩演讲通用PPT模版,文艺时尚毕业答辩PPT模版,简约毕业论文答辩PPT模版112套开题答辩行业PPT模版&#…

驱动开发系列61- Vulkan 驱动实现-SPIRV到HW指令的实现过程(2)

本节继续介绍下SPIR-V到LLVM IR的转换过程,重点分析其核心机制和关键转换步骤。我们将从 LLVM 入手,结合实SPIR-V结构逐步转换为符合 LLVM IR 语义的表示方式。 一:详细过程 1. 创建llvm::module llvm::LLVMContext llvmContext; std::unique_ptr<llvm::Mod…

集训Demo2

做一个类似原神圣遗物生成、穿戴、卸下的案例创建项目创建数据库添加圣遗物获取4个数字&#xff0c;对应圣遗物随机的四种属性构造对象添加批量删除圣遗物foreach构造数组转移圣遗物分别在items和character两个库中根据id获取对象&#xff0c;判断唯一id存在哪个数据库中在item…

RedisJSON 技术揭秘`JSON.CLEAR` 一键清空容器、重置数字的“软删除”

一、指令速查 JSON.CLEAR <key> [path]参数说明keyRedis 键名pathJSONPath&#xff08;可选&#xff0c;缺省 $ 根&#xff1b;支持 *、.. 多路径&#xff09;返回值&#xff1a;整数——被清空的数组 / 对象数量 被置零的数值字段数量。已为空或为 0 的字段不会重复统计…

Java单元测试JUnit

文章目录前言一、JUnit描述&#xff08;引入Maven&#xff09;二、基本API注解2.1、Assert类2.2、JUnit注解三、普通单元测试3.1、BeforeClass、AfterClass、Before、After、Test合集测试四、SpringBoot单元测试4.1、SpringBoot集成Junit介绍4.2、实战&#xff1a;SpringBoot项…

HR数字化转型:3大痛点解决方案与效率突破指南

在人力资源部门工作多年&#xff0c;每天面对堆积如山的简历、此起彼伏的员工咨询、错综复杂的薪酬报表……作为HR的你&#xff0c;是否常感到被海量事务性工作淹没&#xff0c;难以喘息&#xff1f;在数字化转型的浪潮下&#xff0c;传统工作方式正遭遇前所未有的挑战。本文将…

如何运用个人IP影响力寻找使命的力量|创客匠人

在知识付费领域&#xff0c;那些能穿越周期的 IP&#xff0c;往往不只是 “卖课机器”&#xff0c;而是以使命为内核的价值传递者。使命为知识变现注入灵魂&#xff0c;让知识产品从 “信息交易” 升华为 “价值共鸣”&#xff0c;这正是个人 IP 实现深度变现与长期影响力的关键…

软件开发中的瀑布式开发与敏捷开发

一、瀑布式开发&#xff08;Waterfall Model&#xff09;核心流程 采用线性、阶段化开发&#xff0c;依次经历需求分析、设计、开发、测试、部署、维护&#xff0c;前一阶段完成后进入下一阶段&#xff0c;如瀑布流水单向推进。 典型阶段&#xff1a;需求固化→架构设计→代码实…

如何卸载SQLServer

1.打开控制面板2.双击&#xff0c;弹出对话框&#xff0c;点击删除3.然后一步一步跟着提示&#xff0c;下一步下一步就好了。4.如果发现没有卸载干净&#xff0c;快捷键winR&#xff0c;输入regedit&#xff0c;进入注册表5.找到计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\…

策略设计模式分析

策略设计模式概述策略模式&#xff08;Strategy Pattern&#xff09;属于行为型设计模式&#xff0c;允许在运行时动态选择算法或行为。它将算法封装成独立的类&#xff0c;使得它们可以相互替换&#xff0c;而不会影响客户端代码。核心组件1. 策略接口&#xff08;Strategy In…

IPM31主板E3300usb键盘鼠标安装成功Sata接口硬盘IDE模式server2003-nt-5.2.3790

IPM31主板E3300usb键盘鼠标安装成功Sata接口硬盘IDE模式server2003-nt-5.2.3790

Docker环境搭建与容器操作全攻略:从入门到实战

一、环境搭建 1.1 基础包安装&#xff08;最小化系统&#xff09; # 备份Yum源配置 mkdir /etc/yum.repos.d/bak mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/ 配置Yum源示例 可以更换为阿里云镜像 cat <<EOF > /etc/yum.repos.d/local.repo [baseos] …

4.2TCP/IP

1、TCP/IP基础&#xff08;重要&#xff09;概要网络协议3要素&#xff1a;语法、语义、时序 osi七层模型&#xff1a;应用层、表示层、会话层、传输层、网络层、数据链路层、物理层tcp四层模型&#xff1a;应用层&#xff08;应用层、表示层、会话层&#xff09;、传输层、int…

Java之Stream其二

文章目录5,Optional5.1,概述5.2,使用5.2.1,创建对象5.2.2,安全消费值5.2.3,获取值5.2.4,安全获取值5.2.5,过滤5.2.6,判断5.2.7,数据转换6,方法引用6.1 推荐用法6.2 基本格式6.3 语法详解(了解)6.3.1 引用类的静态方法6.3.2 引用对象的实例方法6.3.3 引用类的实例方法6.3.4 构造…

一般芯片电气特性中Flash参数达到其最大值的条件是什么?

芯片电气特性中标注的最大值&#xff08;比如 Data Flash 擦除时间的最大值&#xff09;&#xff0c;代表在最恶劣但仍在规格书定义的工作条件范围内的情况下&#xff0c;该参数可能达到的最差值。达到这个最大值通常是由多个最坏情况因素组合造成的。 对于 Data Flash 擦除时间…

python中正则中的split方法、sub方法、finditer方法、compile方法、match对象

正则常见方法梳理 split方法 将一个字符串按照正则表达式匹配结果进行分割,返回结果是列表类型。 pattern:正则表达式的字符串或原生字符串表示string:待匹配字符串maxsplit:最大分割数,剩余部分最为最后一个元素输出flags:正则表达式使用时候的控制标记 re模块的spli…

Pytorch中张量的索引和切片使用详解和代码示例

PyTorch 中张量索引与切片详解 使用前先导入&#xff1a; import torch1.基础索引&#xff08;类似 Python / NumPy&#xff09; 适用于低维张量&#xff1a;x[i]、x[i, j] x torch.tensor([[10, 11, 12],[13, 14, 15],[16, 17, 18]])print(x[0]) # 第0行: tensor([10…

北京-4年功能测试2年空窗-报培训班学测开-第五十一天

行叭&#xff0c;今天复习第一天&#xff0c;状态效率&#xff0c;差我发现&#xff0c;一旦换了新环境/知识&#xff0c;我就需要重新调整状态&#xff0c;少则一两天&#xff0c;多则一周多。从周日起就很迷茫&#xff0c;哪怕昨天老师讲了简历与面试&#xff0c;我也清楚地知…

虚拟现实的镜廊:当技术成为存在之茧

傍晚&#xff0c;摘下VR头盔的瞬间&#xff0c;房间里未关的台灯竟显得刺眼。指尖划过光滑的塑料外壳&#xff0c;温热的机体还在微微震动&#xff0c;如同某种活物的呼吸。窗外城市的光污染在玻璃上晕染成片&#xff0c;而我的视网膜里仍残留着方才的极光&#xff1a;挪威峡湾…

OSPF过滤

首先需要复习一个点&#xff1a;ACL最终隐含规则不同&#xff1a;如果acl匹配的是流量&#xff0c;则默认是运行所有如果acl匹配的是路由&#xff0c;则默认是拒绝所有OSPF过滤&#xff1a; 1.路由过滤1.LSA可以正常学习&#xff0c;但是不会使用LSA计算路由[AR1]acl 2000[AR1-…