前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >mysql 字符转数字进行比较大小_mysql将字符串字段转为数字排序或比大小

mysql 字符转数字进行比较大小_mysql将字符串字段转为数字排序或比大小

作者头像
全栈程序员站长
发布2022-09-02 10:56:05
发布2022-09-02 10:56:05
3.3K0
举报

大家好,又见面了,我是你们的朋友全栈君。

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

转载至链接:https://my.oschina.net/u/2331760/blog/1842421

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/139407.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档