【MYSQL】排序时 如何将0排到最后,并让其他值按正序展示?

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介: 【MYSQL】排序时 如何将0排到最后,并让其他值按正序展示?

背景:展示排名时需要1,2,3,4,5,这样展示但是有些没有排名得数据字段默认值时0,这时直接用ASC就会出现问题

实现效果

实现方式:使用MySQL的ORDER BY语句来实现。以下是一个示例的SQL查询语句

SELECT * FROM table_name
ORDER BY CASE WHEN column_name = 0 THEN 1 ELSE 0 END, column_name ASC;

在上述示例中,table_name是表名,column_name是要排序的列名。

解释一下SQL语句的含义:

CASE WHEN column_name = 0 THEN 1 ELSE 0 END:这是一个条件表达式,当column_name的值为0时,返回1;否则,返回0。这样就将0的值标记为1,其他值标记为0。

ORDER BY CASE WHEN column_name = 0 THEN 1 ELSE 0 END, column_name ASC:这是排序的部分。首先按照前面条件表达式的结果排序,即将0排到最后。然后再按照column_name的升序排序。

通过以上的SQL查询语句,可以实现将0排到最后,并让其他值按照正序展示的效果。你可以在TP5的查询构造器中使用类似的语法来实现相同的效果。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
关系型数据库 MySQL
Mysql语句_查询数据百分比、人员年龄、数据排序、添加查询时的列属性、合并查询结果
Mysql语句_查询数据百分比、人员年龄、数据排序、添加查询时的列属性、合并查询结果
21 0
|
1月前
|
缓存 关系型数据库 MySQL
MySQL查询优化:提速查询效率的13大秘籍(合理使用索引合并、优化配置参数、使用分区优化性能、避免不必要的排序和group by操作)(下)
MySQL查询优化:提速查询效率的13大秘籍(合理使用索引合并、优化配置参数、使用分区优化性能、避免不必要的排序和group by操作)(下)
|
11天前
|
关系型数据库 MySQL 数据库
MySQL的排序、分组、合并
MySQL的排序、分组、合并
|
14天前
|
SQL 关系型数据库 MySQL
MySQL多表联合查询+分组+排序
MySQL多表联合查询+分组+排序
14 0
|
1月前
|
关系型数据库 MySQL 数据库
【MySQL进阶之路 | 基础篇】排序(ORDER BY)与分页(LIMIT)
【MySQL进阶之路 | 基础篇】排序(ORDER BY)与分页(LIMIT)
|
1月前
|
存储 SQL 关系型数据库
你有这么高效的MySQL版本号排序,记住我给出的原理
在MySQL中,对版本号进行正确排序遇到了问题,表现为不符合常规的版本比较逻辑,如“1.0.12”被错误地排在“1.0.2”之后。这可能是由于接口在处理版本号比较时的算法或逻辑错误。为解决这个问题,提出了四个优化方案。
|
1月前
|
存储 关系型数据库 MySQL
MySQL各字符集、排序规则的由来、用法,区别和联系
MySQL支持多种字符集和排序规则,这些在数据库设计和数据处理中起着重要作用。下面是它们的由来、用法、区别和联系: 1. **字符集(Character Set)**: - **由来**:字符集定义了数据库中可以存储的字符集合,以及这些字符在数据库中的存储方式。 - **用法**:在创建数据库或表时,可以指定所需的字符集。常见的字符集包括UTF-8、UTF-16、Latin1等。 - **区别和联系**:不同的字符集支持不同的字符范围和存储方式,选择合适的字符集可以确保数据的正确存储和处理。例如,UTF-8支持全球范围内的大多数字符,而Latin1只支持西欧语言字符集。
|
22天前
|
SQL 关系型数据库 MySQL
MySQL数据库——SQL(3)-DQL(基本查询、条件查询、聚合函数、分组查询、排序查询、分页查询、案例练习)
MySQL数据库——SQL(3)-DQL(基本查询、条件查询、聚合函数、分组查询、排序查询、分页查询、案例练习)
25 0
|
1月前
|
存储 算法 关系型数据库
MySQL怎样处理排序⭐️如何优化需要排序的查询?
MySQL怎样处理排序⭐️如何优化需要排序的查询?
|
1月前
|
SQL 关系型数据库 MySQL
【MySQL】DQL-排序查询-语法&注意事项&可cv例题语句
【MySQL】DQL-排序查询-语法&注意事项&可cv例题语句