mysql实现将字符串字段转为数字排序或比大小
作者:ispotu 时间:2024-01-16 19:59:16
将字符串字段转为数字排序或比大小
mysql里面有个坑就是,有时按照某个字段的大小排序(或是比大小)发现排序有点错乱。后来才发现,是我们想当然地把对字符串字段当成数字并按照其大小排序(或是比大小),结果肯定不会是你想要的结果。
这时候需要把字符串转成数字再排序。
最简单的办法就是在字段后面加上+0
如把'123'转成数字123(以下例子全为亲测):
排序
例:
方法一:
ORDER BY '123'+0;(首推)
方法二:
ORDER BY CAST('123' AS SIGNED);
方法三:
ORDER BY CONVERT('123',SIGNED);
比大小
例:
SELECT '123'+0; -- 结果为123
SELECT '123'+0>127; -- 结果为0
SELECT '123'+0>12; -- 结果为1
SELECT CAST('123' AS SIGNED); -- 结果为123
SELECT CONVERT('123',SIGNED)>127; -- 结果为0
SELECT CONVERT('123',SIGNED)>12; -- 结果为1
SELECT CAST('123' AS SIGNED); -- 结果为123
SELECT CAST('123' AS SIGNED)>127; -- 结果为0
SELECT CAST('123' AS SIGNED)>12; -- 结果为1
综合例子:
SELECT '123'+0>12 ORDER BY CONVERT('123',SIGNED); -- 结果为1
sql语句字符串如何比较大小
需求如下,字段A是varchar类型,现在要将字段A与一个数字比较。上网搜索了一下,99%给出的方法都是cast(字段A as int),或者convent(int,字段A)。
不知道为啥,这两种方法我都试了,语法都不通过,更不用说运行了。
解决方法
写法如下:
select * from XX where 字段A+0 < 数字 + 0
是的,你没看错,就是“+0”这样一个简单的操作。
运行结果贴出来,自己看吧
来源:https://ispotu.blog.csdn.net/article/details/78007969
标签:mysql,字符串字段,数字排序,比大小


猜你喜欢
Python decimal模块使用方法详解
2022-09-06 12:04:33
Django使用channels + websocket打造在线聊天室
2022-01-05 11:16:26

原生js实现移动小球(碰撞检测)
2024-04-19 09:56:01

d3.js实现简单的网络拓扑图实例代码
2024-05-09 10:19:58

python爬虫selenium和phantomJs使用方法解析
2023-02-06 19:23:38

python3.9.1环境安装的方法(图文)
2023-06-26 15:58:26

php strstr查找字符串中是否包含某些字符的查找函数
2023-11-17 01:42:23
教你四种方法用来查看mysql版本
2009-06-28 11:13:00
JavaScript实现同步于本地时间的动态时间显示方法
2024-05-11 09:33:19
正在研究XMLHTTP如何正确传送大于7F(127)的二进制数据
2008-09-13 18:41:00
javascript让浏览器实现复读机的功能
2008-10-10 11:49:00
python使用threading获取线程函数返回值的实现方法
2023-10-28 09:34:21
获取星期几的名称
2012-01-29 18:16:31
python实现求纯色彩图像的边框
2022-04-01 22:04:51

python 详解如何使用GPU大幅提高效率
2023-08-24 19:45:46

通过T_sql语句向其中一次填入一条数据或一次填入多条数据的方式填充数据
2012-11-30 19:55:34
详细讲解删除SQL Server日志的具体方法
2008-12-09 14:32:00
java正则表达式之Pattern与Matcher类详解
2023-06-21 10:14:03

php+highchats生成动态统计图
2024-05-02 17:19:08
Python使用crontab模块设置和清除定时任务操作详解
2023-02-07 15:13:37
