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创建高性能索引的全步骤
May 02 MySQL
MySQL中出现乱码问题的终极解决宝典
May 26 MySQL
MySQL删除和插入数据很慢的问题解决
Jun 03 MySQL
mysql获取指定时间段中所有日期或月份的语句(不设存储过程,不加表)
Jun 18 MySQL
python中的mysql数据库LIKE操作符详解
Jul 01 MySQL
MySQL系列之十二 备份与恢复
Jul 02 MySQL
MySQL 如何限制一张表的记录数
Sep 14 MySQL
浅谈MySQL函数
Oct 05 MySQL
MySQL优化及索引解析
Mar 17 MySQL
MySQL的存储函数与存储过程的区别解析
Apr 08 MySQL
Mysql 文件配置解析介绍
May 06 MySQL
MySQL普通表如何转换成分区表
May 30 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使用glob函数遍历文件和目录详解
2016/09/23 PHP
Ecshop 后台添加新功能栏目及管理权限设置教程
2017/11/21 PHP
PHPStorm2020.1永久激活及下载更新至2020(推荐)
2020/09/25 PHP
动态控制Table的js代码
2007/03/07 Javascript
jQuery AJAX 调用WebService实现代码
2010/03/24 Javascript
jQuery实现简单的列表式导航菜单效果代码
2015/08/31 Javascript
jQuery焦点图轮播插件KinSlideshow用法分析
2016/06/08 Javascript
Angular2自定义分页组件
2017/04/19 Javascript
利用jsonp与代理服务器方案解决跨域问题
2017/09/14 Javascript
js中时间格式化的几种方法
2018/07/22 Javascript
解决vue项目nginx部署到非根目录下刷新空白的问题
2018/09/27 Javascript
AngularJS实现的自定义过滤器简单示例
2019/02/02 Javascript
使用localStorage替代cookie做本地存储
2019/09/25 Javascript
VUE DEMO之模拟登录个人中心页面之间数据传值实例
2019/10/31 Javascript
Vue filter 过滤当前时间 实现实时更新效果
2019/12/20 Javascript
[01:04:35]2018DOTA2亚洲邀请赛 4.3 突围赛 Secret vs VG 第一场
2018/04/04 DOTA
python通过pil将图片转换成黑白效果的方法
2015/03/16 Python
用Python进行一些简单的自然语言处理的教程
2015/03/31 Python
Python跳出多重循环的方法示例
2019/07/03 Python
python logging模块书写日志以及日志分割详解
2019/07/22 Python
pymysql模块的使用(增删改查)详解
2019/09/09 Python
Python安装及Pycharm安装使用教程图解
2019/09/20 Python
python上传时包含boundary时的解决方法
2020/04/08 Python
python中_del_还原数据的方法
2020/12/09 Python
css3实现超炫风车特效
2014/11/12 HTML / CSS
纪伊国屋新加坡网上书店:Kinokuniya新加坡
2017/12/29 全球购物
女装和独特珠宝:Sundance Catalog
2018/09/19 全球购物
网络编辑岗位职责范本
2014/02/10 职场文书
住房租房协议书
2014/08/20 职场文书
市委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
2014群众路线学习笔记
2014/11/06 职场文书
齐云山导游词
2015/02/06 职场文书
老乡聚会通知
2015/04/23 职场文书
火烧圆明园观后感
2015/06/03 职场文书
Python中22个万用公式的小结
2021/07/21 Python
MyBatis 动态SQL全面详解
2021/10/05 MySQL