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 查询速度慢的原因
May 25 MySQL
一看就懂的MySQL的聚簇索引及聚簇索引是如何长高的
May 25 MySQL
MySQL 百万级数据的4种查询优化方式
Jun 07 MySQL
QT连接MYSQL数据库的详细步骤
Jul 07 MySQL
Mysql8.0递归查询的简单用法示例
Aug 04 MySQL
MySQL外键约束(FOREIGN KEY)案例讲解
Aug 23 MySQL
MySQL约束超详解
Sep 04 MySQL
Mysql 如何合理地统计一个数据库里的所有表的数据量
Apr 18 MySQL
MySQL 字符集 character
May 04 MySQL
Mysql表数据比较大情况下修改添加字段的方法实例
Jun 28 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 命令行工具 shell_exec, exec, passthru, system详细使用介绍
2011/09/11 PHP
php输出金字塔的2种实现方法
2014/12/16 PHP
一个字符串反转函数可实现字符串倒序
2014/09/15 Javascript
使用jQueryMobile实现滑动翻页效果的方法
2015/02/04 Javascript
Grunt入门教程(自动任务运行器)
2015/08/06 Javascript
Angular ng-repeat 对象和数组遍历实例
2016/09/14 Javascript
vue.js事件处理器是什么
2017/03/20 Javascript
JS简单实现滑动加载数据的方法示例
2017/10/18 Javascript
js原生方法被覆盖,从新赋值原生的方法
2018/01/02 Javascript
Webpack的dll功能使用
2018/06/28 Javascript
详解关于Vue2.0路由开启keep-alive时需要注意的地方
2018/09/18 Javascript
微信小程序导航栏跟随滑动效果的实现代码
2019/05/14 Javascript
微信小程序开发之map地图组件定位并手动修改位置偏差
2019/08/17 Javascript
Node.js HTTP服务器中的文件、图片上传的方法
2019/09/23 Javascript
详细分析Node.js 多进程
2020/06/22 Javascript
vue设置全局访问接口API地址操作
2020/08/14 Javascript
vue中如何自定义右键菜单详解
2020/12/08 Vue.js
以911新闻为例演示Python实现数据可视化的教程
2015/04/23 Python
Python3字符串学习教程
2015/08/20 Python
Python Numpy库安装与基本操作示例
2019/01/08 Python
Python+OpenCv制作证件图片生成器的操作方法
2019/08/21 Python
解决Python中回文数和质数的问题
2019/11/24 Python
Python实现手势识别
2020/10/21 Python
详解纯CSS3制作的20种loading动效
2017/07/05 HTML / CSS
英国人最爱的饰品网站:Accessorize
2016/08/22 全球购物
新秀丽官方旗舰店:Samsonite拉杆箱、双肩包、皮具
2018/03/05 全球购物
在印度上传处方,在线订购药品:Medlife
2019/03/28 全球购物
美国精油公司:Plant Therapy
2019/05/17 全球购物
实习自我鉴定
2013/12/15 职场文书
个人贷款担保书
2014/04/01 职场文书
计算机毕业生求职信
2014/06/10 职场文书
2014年科研工作总结
2014/12/03 职场文书
闭幕词的写作格式与范文!
2019/06/24 职场文书
Matplotlib可视化之添加让统计图变得简单易懂的注释
2021/06/11 Python
Python作用域和名称空间的详细介绍
2022/04/13 Python