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 11 MySQL
mysql死锁和分库分表问题详解
Apr 16 MySQL
MySQL update set 和 and的区别
May 08 MySQL
详解MySQL多版本并发控制机制(MVCC)源码
Jun 23 MySQL
MySQL子查询中order by不生效问题的解决方法
Aug 02 MySQL
记一次Mysql不走日期字段索引的原因小结
Oct 24 MySQL
mysql分组后合并显示一个字段的多条数据方式
Jan 22 MySQL
你真的会用Mysql的explain吗
Mar 31 MySQL
MySQL中IO问题的深入分析与优化
Apr 02 MySQL
MySQL的prepare使用以及遇到的bug
May 11 MySQL
MySQL数据库简介与基本操作
May 30 MySQL
数据设计之权限的实现
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 保留小数点
2009/04/21 PHP
简单谈谈php中的unicode和utf8编码
2015/06/10 PHP
Thinkphp和onethink实现微信支付插件
2016/04/13 PHP
php版微信js-sdk支付接口类用法示例
2016/10/12 PHP
Prototype Class对象学习
2009/07/19 Javascript
浏览器页面区域大小的js获取方法
2013/09/21 Javascript
javascript模拟订火车票和退票示例
2014/04/24 Javascript
setinterval()与clearInterval()JS函数的调用方法
2015/01/21 Javascript
JavaScript实现将UPC转换成ISBN的方法
2015/05/26 Javascript
详解js中Number()、parseInt()和parseFloat()的区别
2016/12/20 Javascript
NodeJS实现客户端js加密
2017/01/09 NodeJs
为Jquery EasyUI 组件加上清除功能的方法(详解)
2017/04/13 jQuery
JS简单判断字符在另一个字符串中出现次数的2种常用方法
2017/04/20 Javascript
ajax请求+vue.js渲染+页面加载的示例
2018/02/11 Javascript
微信小程序实现列表页的点赞和取消点赞功能
2018/11/02 Javascript
JQuery 实现文件下载的常用方法分析
2019/10/29 jQuery
微信小程序定义和调用全局变量globalData的实现
2019/11/01 Javascript
Node.js fs模块原理及常见用途
2020/10/22 Javascript
[03:56]DOTA2完美大师赛趣味视频之小鸽子和Mineski打台球
2017/11/24 DOTA
python遍历文件夹并删除特定格式文件的示例
2014/03/05 Python
python通过colorama模块在控制台输出彩色文字的方法
2015/03/19 Python
详解用python实现简单的遗传算法
2018/01/02 Python
TensorFlow实现非线性支持向量机的实现方法
2018/04/28 Python
python验证码识别教程之滑动验证码
2018/06/04 Python
使用OpCode绕过Python沙箱的方法详解
2019/09/03 Python
Anaconda3+tensorflow2.0.0+PyCharm安装与环境搭建(图文)
2020/02/18 Python
Django contrib auth authenticate函数源码解析
2020/11/12 Python
pymongo insert_many 批量插入的实例
2020/12/05 Python
阿玛尼美国官方网站:Armani.com
2016/11/25 全球购物
怀旧收藏品和经典纪念品:Betty’s Attic
2018/08/29 全球购物
艺术用品:Arteza
2018/11/25 全球购物
Engel & Bengel官网:婴儿推车、儿童房家具和婴儿设备
2019/12/28 全球购物
高三学生评语大全
2014/04/25 职场文书
个人债务授权委托书
2014/10/17 职场文书
考试作弊检讨书1000字(5篇)
2014/10/19 职场文书
详解用Python把PDF转为Word方法总结
2021/04/27 Python