MySQL排序你真的掌握了吗?5个问题考考你

测试sql数据

CREATE TABLE `student` (`id` int NOT NULL AUTO_INCREMENT,`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,`age` int DEFAULT NULL,`money` int DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE,KEY `index_name` (`age`)
);
INSERT INTO `student` VALUES (1, '张三', 22, 1000);
INSERT INTO `student` VALUES (2, '李四', 23, 1000);
INSERT INTO `student` VALUES (3, '王五', 24, 2000);
INSERT INTO `student` VALUES (4, '赵六', 10, 1500);
INSERT INTO `student` VALUES (5, '孙七', 21, 2000);
INSERT INTO `student` VALUES (6, '周八', 30, 1200);
INSERT INTO `student` VALUES (7, '吴九', 21, 1100);
INSERT INTO `student` VALUES (8, '郑十', 21, 1400);
INSERT INTO `student` VALUES (9, '张三哥哥', 23, 1231);
INSERT INTO `student` VALUES (10, '李四姐姐', 25, 1000);
INSERT INTO `student` VALUES (11, '1张三', 21, 1000);
INSERT INTO `student` VALUES (12, '2张三', 21, 1000);
INSERT INTO `student` VALUES (13, '11张三', 23, 1000);

在这里插入图片描述

问题一: 请按拥有的money进行从大到小排序

在这里插入图片描述

问题二: 请按拥有的money进行倒序,相同money的情况下以年龄从小到大排序
在这里插入图片描述

问题三: 按姓名拼音排序
在这里插入图片描述

问题四: 如果名字开头中含有数字,请按数字从大到小排序,开头不含数字的名字按拼音排序
在这里插入图片描述

问题五: 按 张三、李四、王五的顺序进行排序,剩下以上述的规则排序
在这里插入图片描述

参考答案:


-- 请按拥有的money进行倒序
select * from student order by money desc;-- 请按拥有的money进行倒序,相同money的情况下以年龄从小到大排序
select * from student order by money desc, age;-- 按 姓名拼音排序
select * from student order by CONVERT(name USING gbk);-- 如果名字开头中含有数字,请按数字从大到小排序,开头不含数字的名字按拼音排序
select * from student order by IF(name REGEXP '^[0-9]', 1, 2),IF(name REGEXP '^[0-9]', CAST(name AS SIGNED), 0) DESC,CONVERT(name USING gbk);-- 按 张三、李四、王五的顺序进行排序,其他数据按money进行倒序,相同money的情况下以年龄从小到大排序
select * from student order byCASE nameWHEN '张三' THEN 1WHEN '李四' THEN 2WHEN '王五' THEN 3ELSE 4END, money desc, age;

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

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

相关文章

图像分割:Pytorch实现UNet++进行医学细胞分割

图像分割:Pytorch实现UNet进行医学细胞分割 前言相关介绍项目结构具体步骤准备数据集读取数据集设置并解析相关参数定义网络模型定义损失函数定义优化器训练验证 参考 前言 由于本人水平有限,难免出现错漏,敬请批评改正。更多精彩内容&#x…

react项目规范新手教程

简介 React是一种流行的JavaScript库,用于构建用户界面。搭建一个React项目并不难,但确保项目的结构和配置正确可以帮助你更有效地开发和维护应用程序。以下是搭建React项目的一些步骤: 项目规范:项目中有一些开发规范和代码风格…

【计算机毕业设计】4S店车辆管理系统——后附源码

🎉**欢迎来到我的技术世界!**🎉 📘 博主小档案: 一名来自世界500强的资深程序媛,毕业于国内知名985高校。 🔧 技术专长: 在深度学习任务中展现出卓越的能力,包括但不限于…

Oracle 11g完全卸载教程(Windows)

文章目录 一、停止Oracle服务二、卸载Oracle1、卸载Oracle产品2、删除注册表3、删除环境变量以及其余文件 一、停止Oracle服务 进入服务 找到服务中的Oracle服务并且停止 全部停止运行成功 二、卸载Oracle 1、卸载Oracle产品 点击开始菜单找到Oracle,然后点击…

打破常规:AI如何帮助从业者规避营销活动风险

人工智能时代:如何利用AI提升营销效果 在当今商界,市场策划活动对于企业来说至关重要,它们不仅可以吸引消费者的注意,还可以扩大企业的市场份额。然而,这些活动本身带来的风险也不容忽视。为了帮助企业在策划活动时做出…

芯片封测:从入门到精通

💂 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】🤟 一站式轻松构建小程序、Web网站、移动应用:👉注册地址🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交…

1.C++入门

1.关键字(C98) 2.命名空间 在 C/C 中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存 在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是 对标识符的名称进行本地化 &#xff…

linux shell脚本编写(2)

Shell: 命令转换器,高级语言转换成二进制语言。是Linux的一个外壳,它包在Lniux内核的外面,用户和内核之间的交互提供了一个接口。 内置命令:在shell内部不需要shell编辑 外置命令:高级语言要用shell转换成二进制语言 …

视频号正式推出电商项目,不需要自己直播,也能变现成功!

大家好,我是电商笨笨熊 视频号推出电商项目,这一举动又成了电商圈的热谈; 作为一个不需要自己直播也能卖货的变现方式,对于普通人确实是一个风口,解决了众多玩家想要利用直播变现但又没有相关经验,没有粉…

GPT人工智能在线网页版大全

平民不参与内测,还能使用 ChatGPT 吗? 自去年 ChatGPT 爆红以来,关于它的消息铺天盖地。如果你真的想使用它,途径有很多。除了官方网站外国内还有许多 ChatGPT 的镜像网站,其中不乏免费的 3.5 版本。虽然有些网站需要…

反序列化漏洞笔记

1 PHP 序列化基础概念 1.1 什么是序列化 序列化可以实现将对象压缩并格式化,方便数据的传输和存储。 为什么要序列化? PHP 文件在执行结束时会把对象销毁,如果下次要引用这个对象的话就很麻烦,所以就有了对象序列化&#xff0…

端口协议(爆破、未授权)

常见端口服务及攻击方向: 弱口令爆破 工具:https://github.com/vanhauser-thc/thc-hydra hydra是一个支持多协议的自动化的爆破工具。 支持的服务、协议: telnet ftp pop3[-ntlm] imap[-ntlm] smb smbnt http-{head|get} http-{get|post}-…