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多表连接查询的执行细节
Apr 24 MySQL
MySql学习笔记之事务隔离级别详解
May 12 MySQL
MySQL 如何分析查询性能
May 12 MySQL
mysql 8.0.24版本安装配置方法图文教程
May 12 MySQL
MySQL基础快速入门知识总结(附思维导图)
Sep 25 MySQL
为什么MySQL 删除表数据 磁盘空间还一直被占用
Oct 16 MySQL
全面盘点MySQL中的那些重要日志文件
Nov 27 MySQL
Mysql如何实现不存在则插入,存在则更新
Mar 25 MySQL
mysql 乱码 字符集latin1转UTF8
Apr 19 MySQL
MySQL中的全表扫描和索引树扫描
May 15 MySQL
mysql中关键词exists的用法实例详解
Jun 10 MySQL
MySQL中正则表达式(REGEXP)使用详解
Jul 07 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 class类的用法详细总结
2013/10/17 PHP
php gd等比例缩放压缩图片函数
2016/06/12 PHP
PHP中常见的密码处理方式和建议总结
2018/10/14 PHP
Javascript 二维数组
2009/11/26 Javascript
利用毫秒减值计算时长的js代码
2013/09/22 Javascript
QQ空间顶部折页撕开效果示例代码
2014/06/15 Javascript
JavaScript异步加载浅析
2014/12/28 Javascript
jQuery实现Div拖动+键盘控制综合效果的方法
2015/03/10 Javascript
jquery实现表单验证简单实例演示
2015/11/23 Javascript
javascript从定义到执行 你不知道的那些事
2016/01/04 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
2016/05/10 Javascript
微信小程序 省市区选择器实例详解(附源码下载)
2017/01/05 Javascript
基于js中document.cookie全面解析
2017/09/14 Javascript
JS高级技巧(简洁版)
2018/07/29 Javascript
js+HTML5 canvas 实现简单的加载条(进度条)功能示例
2019/07/16 Javascript
vuex actions异步修改状态的实例详解
2019/11/06 Javascript
Openlayers学习之地图比例尺控件
2020/09/28 Javascript
Centos5.x下升级python到python2.7版本教程
2015/02/14 Python
Python Flask框架扩展操作示例
2019/05/03 Python
PyCharm 创建指定版本的 Django(超详图解教程)
2019/06/18 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
2019/07/03 Python
python return逻辑判断表达式实现解析
2019/12/02 Python
推荐技术人员一款Python开源库(造数据神器)
2020/07/08 Python
matplotlib基础绘图命令之imshow的使用
2020/08/13 Python
HTML5 Canvas+JS控制电脑或手机上的摄像头实例
2014/05/03 HTML / CSS
Tory Burch美国官方网站:美国时尚生活品牌
2016/08/01 全球购物
意大利领先的线上奢侈品销售电商:Eleonora Bonucci
2017/10/17 全球购物
Michael Kors英国官网:美国奢侈品品牌
2019/11/13 全球购物
如何从一个文件档案的尾端新增记录
2016/12/02 面试题
公司中秋节活动方案
2014/02/12 职场文书
人力资源经理的岗位职责
2014/03/02 职场文书
学术会议主持词
2014/03/17 职场文书
《大自然的语言》教学反思
2014/04/08 职场文书
工作岗位职责范本
2015/02/15 职场文书
最美劳动诗,致敬所有的劳动者!
2019/07/12 职场文书
如何判断微信付款码和支付宝付款码
2021/04/01 PHP