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 05 MySQL
MySQL慢查询的坑
Apr 28 MySQL
MySQL 逻辑备份与恢复测试的相关总结
May 14 MySQL
MySQL查看表和清空表的常用命令总结
May 26 MySQL
MySQL的安装与配置详细教程
Jun 26 MySQL
低版本Druid连接池+MySQL驱动8.0导致线程阻塞、性能受限
Jul 01 MySQL
sql注入教程之类型以及提交注入
Aug 02 MySQL
Mysql排序的特性详情
Nov 01 MySQL
mysql使用FIND_IN_SET和group_concat两个方法查询上下级机构
Apr 20 MySQL
MySQL数据库 任意ip连接方法
May 20 MySQL
手把手带你彻底卸载MySQL数据库
Jun 14 MySQL
Mysql中mvcc各场景理解应用
Aug 05 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时间戳 strtotime()使用方法和技巧
2013/10/29 PHP
php 无限分类 树形数据格式化代码
2016/10/11 PHP
PHP自动生成缩略图函数的源码示例
2019/03/18 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
JavaScript 程序编码规范
2010/11/23 Javascript
ToolTips JQEURY插件之简洁小提示框效果
2011/11/19 Javascript
jquery为页面增加快捷键示例
2014/01/31 Javascript
Node.js事件循环(Event Loop)和线程池详解
2015/01/28 Javascript
谈谈AngularJs中的隐藏和显示
2015/12/09 Javascript
浅谈javascript 函数表达式和函数声明的区别
2016/01/05 Javascript
前端面试题及答案整理(二)
2016/08/26 Javascript
微信公众平台开发教程(六)获取个性二维码的实例
2016/12/02 Javascript
微信小程序 Canvas增强组件实例详解及源码分享
2017/01/04 Javascript
javascript实现秒表计时器的制作方法
2017/02/16 Javascript
JavaScript装饰器函数(Decorator)实例详解
2017/03/30 Javascript
javascript 通过键名获取键盘的keyCode方法
2017/12/31 Javascript
Vue 换肤的示例实践
2018/01/23 Javascript
angularJs 表格添加删除修改查询方法
2018/02/27 Javascript
axios post提交formdata的实例
2018/03/16 Javascript
jQuery pagination分页示例详解
2018/10/23 jQuery
js验证身份证号码记录的方法
2019/04/26 Javascript
Webpack中loader打包各种文件的方法实例
2019/09/03 Javascript
小程序Scroll-view上拉滚动刷新数据
2020/06/21 Javascript
vue Treeselect 树形下拉框:获取选中节点的ids和lables操作
2020/08/15 Javascript
python生成指定长度的随机数密码
2014/01/23 Python
Python字符串替换实例分析
2015/05/11 Python
Python中创建字典的几种方法总结(推荐)
2017/04/27 Python
Python抓取框架Scrapy爬虫入门:页面提取
2017/12/01 Python
韩国著名的在线综合购物网站:Akmall
2016/08/07 全球购物
YSL圣罗兰美妆美国官网:Yves Saint Lauret US
2016/11/21 全球购物
美国在线鲜花速递:ProFlowers
2017/01/05 全球购物
php优化查询foreach代码实例讲解
2021/03/24 PHP
军训 自我鉴定
2014/02/03 职场文书
护士工作心得体会
2016/01/25 职场文书
mysql使用FIND_IN_SET和group_concat两个方法查询上下级机构
2022/04/20 MySQL
python绘制简单直方图(质量分布图)的方法
2022/04/21 Python