当前位置:网站首页>MySQL-字符串按照数值排序
MySQL-字符串按照数值排序
2022-07-23 11:42:00 【JustDI-CM】
1.需求
MySQL 有个表字段设计的时候,设置为了 varchar 类型,存取的却是数值,后续有业务需要按照此字段排序,获取最大值。
按照最原始的排序语句为:
SELECT * FROM test_21 a ORDER BY a.testId desc;
结果为:
这个并不是想要的结果。
2.方法
改造一下
1)与 int 进行计算
SELECT * FROM test_21 a ORDER BY a.testId+0 desc;
SELECT * FROM test_21 a ORDER BY a.testId-2 desc;
SELECT * FROM test_21 a ORDER BY a.testId*1 desc;
SELECT * FROM test_21 a ORDER BY a.testId/4 desc;
MySQL 的 varchar 与 int 计算时,会转换为 int。
以上4个 sql 的执行结果都为
2)cast() 或 convert()
SELECT * FROM test_21 a ORDER BY cast(a.testId as SIGNED) desc;
SELECT * FROM test_21 a ORDER BY convert(a.testId,SIGNED) desc;
这两个函数都是用于格式转换的,二者没什么区别,
语法为:
CAST(expr AS type)
CONVERT(expr,type)
支持的类型有
| 值 | 说明 |
|---|---|
| DATE | 将expr转换成’YYYY-MM-DD’格式 |
| DATETIME | 将expr转换成’YYYY-MM-DD HH:MM:SS’格式 |
| TIME | 将expr转换成’HH:MM:SS’格式 |
| CHAR | 将expr转换成CHAR(固定长度的字符串)格式 |
| SIGNED | 将expr转换成INT(有符号的整数)格式 |
| UNSIGNED | 将expr转换成INT(无符号的整数)格式 |
| DECIMAL | 将expr转换成FLOAT(浮点数)格式 |
| BINARY | 将expr转换成二进制格式 |
结果都为:
边栏推荐
- Design idea of initializing page input parameters
- C语言学习笔记
- FMDB的封装与使用
- Google Earth Engine——影像统计过程中出现的空值问题
- Learning about patents
- Without Huawei, Qualcomm will raise prices at will, and domestic mobile phones that lack core technology can only be slaughtered
- UmiJs - qiankun主子应用之间,数据的传递
- xml-xxe漏洞之Fake XML cookbook
- How to become an elegant Hardware Engineer?
- Ultra detailed MP4 format analysis
猜你喜欢

没有了华为,高通任意涨价,缺乏核心技术的国产手机只能任由宰割

【攻防世界WEB】难度三星9分入门题(中):ics-05、easytornado

(Zset) how is the underlying layer of redis stored with a hop table

Mercedes Benz new energy product line: luxury new energy market may change the pattern

C语言经典例题-贷款余额

bug修改

对C语言最基本的代码解释

【论文学习】《Source Mixing and Separation Robust Audio Steganography》

关于初始化page入参的设计思路

harbor镜像仓库
随机推荐
redis 主从复制
一个悄然崛起的国产软件,太强了!
《快速掌握QML》第五章 组件
Remember SQL optimization once
数字化转型时代的企业数据新基建 | 爱分析报告
[untitled]
不想dto套dto可以这样写
Learning about patents
Please initialize the log4j system properly.
16个自动化测试面试问题与解答
Ultra detailed MP4 format analysis
基于Matlab的SSB信号调制和解调(内附源码)
Alamofire 框架封装与使用
没有了华为,高通任意涨价,缺乏核心技术的国产手机只能任由宰割
FMDB的封装与使用
xml-xxe漏洞之Fake XML cookbook
Bubble sort - just read one
【云原生】docker环境中安装mysql、redis服务
C语言经典例题-求最少数量钞票
(BFS) template + example (maze, eight digits)