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 06 MySQL
MySQL 使用索引扫描进行排序
Jun 20 MySQL
为什么代码规范要求SQL语句不要过多的join
Jun 23 MySQL
MySQL 十大常用字符串函数详解
Jun 30 MySQL
mysql 直接拷贝data 目录下文件还原数据的实现
Jul 25 MySQL
Mysql实现简易版搜索引擎的示例代码
Aug 30 MySQL
MySQL创建管理子分区
Apr 13 MySQL
MySQL GTID复制的具体使用
May 20 MySQL
关于mysql中string和number的转换问题
Jun 14 MySQL
浅谈MySql update会锁定哪些范围的数据
Jun 25 MySQL
MySQL事务的ACID特性以及并发问题方案
Jul 15 MySQL
MySQL新手入门进阶语句汇总
Sep 23 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的类树(支持无限分类)
2006/10/09 PHP
PHP实现多图上传和单图上传功能
2018/05/17 PHP
扩展JavaScript功能的正确方法(译文)
2012/04/12 Javascript
js弹出模式对话框,并接收回传值的方法
2013/03/12 Javascript
深入理解javaScript中的事件驱动
2013/05/21 Javascript
JS获取URL中的参数数据
2013/12/05 Javascript
jquery获得同源iframe内body下标签的值的方法
2014/09/25 Javascript
JavaScript实现向右伸出的多级网页菜单效果
2015/08/25 Javascript
获取url中用&amp;隔开的参数实例(分享)
2017/05/28 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
2018/08/28 Javascript
javascript实现简易聊天室
2019/07/12 Javascript
微信小程序进入广告实现代码实例
2019/09/19 Javascript
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
2019/10/28 Javascript
浅析Python中的多重继承
2015/04/28 Python
python使用分治法实现求解最大值的方法
2015/05/12 Python
使用pandas读取csv文件的指定列方法
2018/04/21 Python
python实现矩阵打印
2019/03/02 Python
Django 内置权限扩展案例详解
2019/03/04 Python
Python笔记之工厂模式
2019/11/20 Python
python错误调试及单元文档测试过程解析
2019/12/19 Python
使用OpenCV circle函数图像上画圆的示例代码
2019/12/27 Python
pytorch程序异常后删除占用的显存操作
2020/01/13 Python
Python接口自动化测试的实现
2020/08/28 Python
使用CSS Grid布局实现网格的流动
2014/12/30 HTML / CSS
魔幻般冒泡背景的CSS3按钮动画
2016/02/27 HTML / CSS
简述Html5 IphoneX 适配方法
2018/02/08 HTML / CSS
Marks & Spencer爱尔兰:英国马莎百货
2016/04/20 全球购物
《灯光》教学反思
2014/02/08 职场文书
追悼会主持词
2014/03/20 职场文书
团代会宣传工作方案
2014/05/08 职场文书
2014年项目工作总结
2014/11/24 职场文书
2014年小学校长工作总结
2014/12/08 职场文书
简单的辞职信模板
2015/05/12 职场文书
大学自主招生自荐信(2016精选篇)
2016/01/28 职场文书
使用Golang的channel交叉打印两个数组的操作
2021/04/29 Golang
CSS控制继承中的height能变为可继承吗
2022/06/10 HTML / CSS