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 相关文章推荐
多表查询、事务、DCL
Apr 05 MySQL
MySQL性能压力基准测试工具sysbench的使用简介
Apr 21 MySQL
MySQL 不等于的三种使用及区别
Jun 03 MySQL
mysql left join快速转inner join的过程
Jun 30 MySQL
MySql 缓存查询原理与缓存监控和索引监控介绍
Jul 02 MySQL
MySQL系列之九 mysql查询缓存及索引
Jul 02 MySQL
MySQL 那些常见的错误设计规范,你都知道吗
Jul 16 MySQL
MySQL中datetime时间字段的四舍五入操作
Oct 05 MySQL
MySQL悲观锁与乐观锁的实现方案
Nov 02 MySQL
关于mysql中时间日期类型和字符串类型的选择
Nov 27 MySQL
Mysql将字符串按照指定字符分割的正确方法
May 30 MySQL
MySQL优化之慢日志查询
Jun 10 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一句话cmdshell新型 (非一句话木马)
2009/04/18 PHP
PHP的变量类型和作用域详解
2014/03/12 PHP
PHP实现的超长文本分页显示功能示例
2018/06/04 PHP
TNC vs IO BO3 第一场2.13
2021/03/10 DOTA
使用Jquery打造最佳用户体验的登录页面的实现代码
2011/07/08 Javascript
分享一道笔试题[有n个直线最多可以把一个平面分成多少个部分]
2012/10/12 Javascript
Bootstrap所支持的表单控件实例详解
2016/05/16 Javascript
easyui导出excel无法弹出下载框的快速解决方法
2016/11/10 Javascript
select自定义小三角样式代码(实用总结)
2017/08/18 Javascript
深入浅析ES6 Class 中的 super 关键字
2017/10/20 Javascript
vue cli webpack中使用sass的方法
2018/02/24 Javascript
Vue2.0系列之过滤器的使用
2018/03/01 Javascript
vue 表单输入格式化中文输入法异常问题
2018/05/30 Javascript
详解vue+webpack+express中间件接口使用
2018/07/17 Javascript
详解如何构建一个Angular6的第三方npm包
2018/09/07 Javascript
详解在微信小程序的JS脚本中使用Promise来优化函数处理
2019/03/06 Javascript
Vue 中如何正确引入第三方模块的方法步骤
2019/05/05 Javascript
NodeJS多种创建WebSocket监听的方式(三种)
2020/06/04 NodeJs
Python中bisect的用法
2014/09/23 Python
对于Python编程中一些重用与缩减的建议
2015/04/14 Python
python简单实现基于SSL的IRC bot实例
2015/06/15 Python
django开发教程之利用缓存文件进行页面缓存的方法
2017/11/10 Python
Python 编程速成(推荐)
2019/04/15 Python
Python3网络爬虫中的requests高级用法详解
2019/06/18 Python
关于Python内存分配时的小秘密分享
2019/09/05 Python
基于Python中isfile函数和isdir函数使用详解
2019/11/29 Python
Python hashlib模块的使用示例
2020/10/09 Python
详解HTML5中的Communication API基本使用方法
2016/01/29 HTML / CSS
环法自行车赛官方商店:Le Tour de France
2017/08/27 全球购物
亚洲最大的运动鞋寄售店:KicksCrew
2020/11/26 全球购物
会计学财务管理专业个人的自我评价
2013/10/19 职场文书
求职信格式范本
2013/11/15 职场文书
挂职思想汇报
2013/12/31 职场文书
省级四好少年事迹材料
2014/01/25 职场文书
《要下雨了》教学反思
2014/02/17 职场文书
我的中国梦主题教育活动总结
2015/05/07 职场文书