mysql中比较字符串类型数字
操作的表:
p.p1 { margin: 0; font: 16px Menlo; color: rgba(0, 0, 0, 1) }
span.s1 { font-variant-ligatures: no-common-ligatures }
select * from test_max_min;
+----+----------+-------------------+
| id | area | best_history_data |
+----+----------+-------------------+
| 1 | beijing | 33 |
| 2 | beijing | 22 |
| 3 | shanghai | 18 |
| 4 | shanghai | 2 |
| 5 | chengdu | 1 |
| 6 | chengdu | 2 |
| 7 | henan | 13 |
| 8 | henan | 12 |
+----+----------+-------------------+
其中,表结构如下:
p.p1 { margin: 0; font: 16px Menlo; color: rgba(0, 0, 0, 1) }
span.s1 { font-variant-ligatures: no-common-ligatures }
desc test_max_min;
+-------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+-------------+------+-----+---------+-------+
| id | int(11) | NO | | 0 | |
| area | varchar(45) | NO | | NULL | |
| best_history_data | varchar(45) | YES | | NULL | |
+-------------------+-------------+------+-----+---------+-------+
期待:将best_history_data按照顺序排序
但是,直接执行select * from test_max_min order by best_history_data;获取到的结果如下:
p.p1 { margin: 0; font: 16px Menlo; color: rgba(0, 0, 0, 1) }
span.s1 { font-variant-ligatures: no-common-ligatures }
+----+----------+-------------------+
| id | area | best_history_data |
+----+----------+-------------------+
| 5 | chengdu | 1 |
| 8 | henan | 12 |
| 7 | henan | 13 |
| 3 | shanghai | 18 |
| 4 | shanghai | 2 |
| 6 | chengdu | 2 |
| 2 | beijing | 22 |
| 1 | beijing | 33 |
+----+----------+-------------------+
可以看出,best_history_data的排序中2在18的后边,不符合我们的预期。。。原因是best_history_data是字符串类型的数字,字符串比较大小是逐位从高位到低位逐个比较,所以字符串类型的数字18<2
如何解决:使用+0即可
p.p1 { margin: 0; font: 16px Menlo; color: rgba(0, 0, 0, 1) }
span.s1 { font-variant-ligatures: no-common-ligatures }
select * from test_max_min order by best_history_data+0;
+----+----------+-------------------+
| id | area | best_history_data |
+----+----------+-------------------+
| 5 | chengdu | 1 |
| 4 | shanghai | 2 |
| 6 | chengdu | 2 |
| 8 | henan | 12 |
| 7 | henan | 13 |
| 3 | shanghai | 18 |
| 2 | beijing | 22 |
| 1 | beijing | 33 |
+----+----------+-------------------+
p.p1 { margin: 0; font: 16px Menlo; color: rgba(0, 0, 0, 1) }
span.s1 { font-variant-ligatures: no-common-ligatures }
mysql中比较字符串类型数字的更多相关文章
- mysql中的字符串类型数据索引优化
摘自 "高性能mysql" 对于一些字符串类型较长的字段搜索时, 可以参考如下方法
- Mysql中对字符串类型的字段进行数字值排序
排序字段+0或者*1,类似 Java 把 其他类型转换成字符串 比如 +“”: 一.对普通数字字符串字段排序 -- 方式一 SELECT * FROM xxxxxx WHERE STATUS ' O ...
- MySQL 中的字符串类型
字符类型包括: CHAR VARCHAR BINARY VARBINARY BLOB TEXT ENUM SET CHAR 与 VARCHAR CHAR(m) m 取值范围 0-255.列宽固定,存储 ...
- [转]mysql中的字符串的拼接
字符串的拼接 1,Mysql 在Java.C#等编程语言中字符串的拼接可以通过加号“+”来实现,比如:"1"+"3"."a"+"b ...
- Oracle和Mysql中的字符串的拼接
SQL允许两个或者多个字段之间进行计算,字符串类型的字段也不例外.比如我们需要 以"工号+姓名"的方式在报表中显示一个员工的信息,那么就需要把工号和姓名两个字符 串类型的字段拼接计 ...
- Mysql中的一些类型
列类型--整数类型Tinyint:迷你整形 一个字节=8位 最大能表示的数值是0-255 实际区间 -128~127Smallint:小整形 两个字节 能表示0-65535Mediumint:中整型 ...
- java中,字符串类型的时间数据怎样转换成date类型。
将字符串类型的时间转换成date类型可以使用SimpleDateFormat来转换,具体方法如下:1.定义一个字符串类型的时间:2.创建一个SimpleDateFormat对象并设置格式:3.最后使用 ...
- 解析MySQL中存储时间日期类型的选择问题
解析MySQL中存储时间日期类型的选择问题_Mysql_脚本之家 https://www.jb51.net/article/125715.htm 一般应用中,我们用timestamp,datetime ...
- 关于MySql中的varchar类型
今天新开始的项目在做数据库设计,发现自己对MySql的varchar类型还不熟悉,故又上网收集资料整理如下. 1.varchar类型的变化 MySQL 数据库的varchar类型在4.1以下的版本中的 ...
随机推荐
- 基于CC2530的ZigBee最小系统
http://www.cirmall.com/circuit/1946/%E5%9F%BA%E4%BA%8ECC2530%E7%9A%84ZigBee%E6%9C%80%E5%B0%8F%E7%B3% ...
- python3 xlutils对Excel追加内容
在实际应用中我们通常会需要向一个Excel中追加内容,但是在python3中xlwt用起来有点不太方便,下面介绍一下xlutils包的用法,xlutils包依赖于xlrd包,所以需要导入xlrd包,还 ...
- python的数组
- kind:Kubernetes in Docker,单机测试 Kubernetes 群集的最佳方案
请访问原文发布链接:https://sysin.org/article/kind/,查看最新版. 作者:gc(at)sysin.org,主页:www.sysin.org 2021.04.28 更新,k ...
- TVM代码生成codegen
TVM代码生成codegen 硬件后端提供程序(例如Intel,NVIDIA,ARM等),提供诸如cuBLAS或cuDNN之类的内核库以及许多常用的深度学习内核,或者提供框架例,如带有图形引擎的DNN ...
- Mobileye 自动驾驶策略(二)
Mobileye 自动驾驶策略(二) 与多方都成功进行了合作,其中比较大型的合作包括法雷奥.百度和中国 ITS. 法雷奥是最近的的 Tier 1 合作伙伴,法雷奥和 Mobileye 签署协议,表示未 ...
- Flink实时计算pv、uv的几种方法
本文首发于:Java大数据与数据仓库,Flink实时计算pv.uv的几种方法 实时统计pv.uv是再常见不过的大数据统计需求了,前面出过一篇SparkStreaming实时统计pv,uv的案例,这里用 ...
- halcon——缺陷检测常用方法总结(特征训练)
引言 机器视觉中缺陷检测分为一下几种: blob分析+特征 模板匹配(定位)+差分:halcon--缺陷检测常用方法总结(模板匹配(定位)+差分) - 唯有自己强大 - 博客园 (cnblogs.co ...
- 基于Docker安装常用软件
基于Docker安装常用软件 本实验介绍如何基于Docker安装常用的软件,具体包括: Ubuntu Cetnos Nginx Node.js PHP MySQL Tomcat Redis Mongo ...
- 【C++】枚举类型(enum )
定义枚举类型的主要目的是:增加程序的可读性.枚举类型最常见也最有意义的用处之一就是用来描述状态量.枚举类型数据的其他处理也往往应用switch语句,以保证程序的合法性和可读性.枚举值是常量不是变量,不 ...