mysql实现将字符串字段转为数字排序或比大小


Posted in MySQL onJune 14, 2022

将字符串字段转为数字排序或比大小

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”这样一个简单的操作。

mysql实现将字符串字段转为数字排序或比大小

运行结果贴出来,自己看吧

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

MySQL 相关文章推荐
Mysql Show Profile
Apr 05 MySQL
MySql学习笔记之事务隔离级别详解
May 12 MySQL
MySQL5.7并行复制原理及实现
Jun 03 MySQL
如何搭建 MySQL 高可用高性能集群
Jun 21 MySQL
MySQL8.0.18配置多主一从
Jun 21 MySQL
MySQL去除重叠时间求时间差和的实现
Aug 23 MySQL
关于MySQL中的 like操作符详情
Nov 17 MySQL
全面盘点MySQL中的那些重要日志文件
Nov 27 MySQL
Mysql多层子查询示例代码(收藏夹案例)
Mar 31 MySQL
Mysql 文件配置解析介绍
May 06 MySQL
MySQL安装失败的原因及解决步骤
Jun 14 MySQL
MySQL深分页问题解决思路
Dec 24 MySQL
手把手带你彻底卸载MySQL数据库
MYSQL中文乱码问题的解决方案
Jun 14 #MySQL
MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法
Jun 14 #MySQL
MySql如何将查询的出来的字段进行转换
Jun 14 #MySQL
MySQL安装失败的原因及解决步骤
MySQL范围查询优化的场景实例详解
Jun 10 #MySQL
MySQL数据库如何查看表占用空间大小
Jun 10 #MySQL
You might like
PHP数组排序函数合集 以及它们之间的联系分析
2013/06/27 PHP
thinkPHP中验证码的简单使用方法
2015/12/26 PHP
CodeIgniter配置之database.php用法实例分析
2016/01/20 PHP
php opendir()列出目录下所有文件的实例代码
2016/10/02 PHP
Laravel路由研究之domain解决多域名问题的方法示例
2019/04/04 PHP
firefox和IE系列的相关区别整理 以备后用
2009/12/28 Javascript
ECMAScript5(ES5)中bind方法使用小结
2015/05/07 Javascript
限制复选框最多选择项的实现代码
2016/05/30 Javascript
Vue.js基础学习之class与样式绑定
2017/03/20 Javascript
JS+CSS实现网页加载中的动画效果
2017/10/27 Javascript
nodejs中art-template模板语法的引入及冲突解决方案
2017/11/07 NodeJs
nodejs基于express实现文件上传的方法
2018/03/19 NodeJs
vue: WebStorm设置快速编译运行的方法
2018/10/18 Javascript
vue 开发企业微信整合案例分析
2019/12/02 Javascript
javascript实现时间日期的格式化的方法汇总
2020/08/06 Javascript
python模拟登录百度代码分享(获取百度贴吧等级)
2013/12/27 Python
Python实现采用进度条实时显示处理进度的方法
2017/12/19 Python
python实现kNN算法
2017/12/20 Python
python实现本地图片转存并重命名的示例代码
2018/10/27 Python
Python 解码Base64 得到码流格式文本实例
2020/01/09 Python
详解Django3中直接添加Websockets方式
2020/02/12 Python
Python接收手机短信的代码整理
2020/08/02 Python
美国在线印刷公司:PsPrint
2017/10/12 全球购物
荷兰最大的儿童服装店:The Kids Republic
2019/04/13 全球购物
面向对象编程的优势是什么
2015/12/17 面试题
十一个高级MySql面试题
2014/10/06 面试题
护理实习自我鉴定
2013/12/14 职场文书
大学毕业论文致谢词
2015/05/14 职场文书
百年孤独读书笔记
2015/06/29 职场文书
高中生社会实践心得体会
2016/01/14 职场文书
《圆的周长》教学反思
2016/02/17 职场文书
PHP策略模式写法
2021/04/01 PHP
python执行js代码的方法
2021/05/13 Python
Apache POI的基本使用详解
2021/11/07 Servers
CSS使用Flex和Grid布局实现3D骰子
2022/08/05 HTML / CSS
Springboot集成kafka高级应用实战分享
2022/08/14 Java/Android