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如何配置白名单访问
Jun 30 MySQL
使用ORM新增数据在Mysql中的操作步骤
Jul 26 MySQL
MySQL非空约束(not null)案例讲解
Aug 23 MySQL
关于MySQL中的 like操作符详情
Nov 17 MySQL
mysql中整数数据类型tinyint详解
Dec 06 MySQL
Mysql中一千万条数据怎么快速查询
Dec 06 MySQL
MySQL笔记 —SQL运算符
Jan 18 MySQL
分享MySQL常用 内核 Debug 几种常见方法
Mar 17 MySQL
MySQL学习之基础命令实操总结
Mar 19 MySQL
MySQL创建管理子分区
Apr 13 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
Laravel 5 框架入门(三)
2015/04/09 PHP
php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
2016/03/23 PHP
PHP替换Word中变量并导出PDF图片的实现方法
2020/11/26 PHP
js兼容的placeholder属性详解
2013/08/18 Javascript
微信分享的标题、缩略图、连接及描述设置方法
2014/10/14 Javascript
js拆分字符串并将分割的数据放到数组中的方法
2015/05/06 Javascript
js焦点文字滚动效果代码分享
2015/08/25 Javascript
jQuery实现鼠标选文字发新浪微博的方法
2016/04/02 Javascript
jquery插件方式实现table查询功能的简单实例
2016/06/06 Javascript
浅谈js的html元素的父节点,子节点
2016/08/06 Javascript
原生js实现仿window10系统日历效果的实例
2017/10/31 Javascript
angular2/ionic2 实现搜索结果中的搜索关键字高亮的示例
2018/08/17 Javascript
Vuex 快速入门(简单易懂)
2018/09/20 Javascript
jQuery实现图片随机切换、抽奖功能(实例代码)
2019/10/23 jQuery
vue 防止页面加载时看到花括号的解决操作
2020/11/09 Javascript
[31:29]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第一场 12.20
2020/12/23 DOTA
python daemon守护进程实现
2016/08/27 Python
PYTHON 中使用 GLOBAL引发的一系列问题
2016/10/12 Python
python中reduce()函数的使用方法示例
2017/09/29 Python
python中的decorator的作用详解
2018/07/26 Python
在python中使用xlrd获取合并单元格的方法
2018/12/26 Python
python统计中文字符数量的两种方法
2019/01/31 Python
python里dict变成list实例方法
2019/06/26 Python
Pandas-Cookbook 时间戳处理方式
2019/12/07 Python
为什么黑客都用python(123个黑客必备的Python工具)
2020/01/31 Python
详解Pycharm与anaconda安装配置指南
2020/08/25 Python
详解pycharm配置python解释器的问题
2020/10/15 Python
canvas实现漂亮的下雨效果的示例
2018/04/18 HTML / CSS
全球知名提供各类营养保健品的零售商:Vitamin Shoppe
2016/10/09 全球购物
意大利专业化妆品品牌:KIKO MILANO
2017/02/01 全球购物
世界第一曲奇连锁店:Mrs. Fields Cookies
2017/02/04 全球购物
美术专业学生个人自我评价
2013/09/19 职场文书
服装机修工岗位职责
2013/12/26 职场文书
安全生产实施方案
2014/02/23 职场文书
大专应届毕业生求职信
2014/07/15 职场文书
sql查询结果列拼接成逗号分隔的字符串方法
2021/05/25 SQL Server