MySQL 字符串和数值比较、字符串与字符串比较
一、字符串与数字比较
MySQL字符串和数字比较的坑:比较时会把字符串类型转成整数类型,从首字母开始,遇到非数字类型后终止。
原文:
Comparison operations result in a value of 1 (TRUE), 0 (FALSE), or NULL. These operations work for both numbers and strings. Strings are automatically converted to numbers and numbers to strings as necessary.
也就是说在比较的时候,String是可能会被转为数字的。
对于数据开头的字符串,转成数字后会自动丢弃后面的字母部分,只留下纯数字进行比较。
对于没有数字的那些字符串,与数值进行比较的时候,就只剩下0去和其他数值进行比较了
注:其实字符串和数值比较最大的坑在于:它会导致查询不能用到索引,直接就影响了查询的效率。
1、对于开头部分不能截取出数字的字符串来说,转换的结果自然就是0了。就只剩下0去和其他数值进行比较了。
mysql> select 'abc'=0;
+---------+
| 0='abc' |
+---------+
| 1 |
+---------+
1 row in set, 1 warning (0.00 sec)mysql> SELECT "a2bc"<2;
+----------+
| "a2bc"<2 |
+----------+
| 1 |
+----------+
1 row in set, 1 warning (0.01 sec)2、对于数据开头的字符串,转成数字后会自动丢弃后面的字母部分,只留下纯数字进行比较。
mysql> select 11>'010abc';
+-------------+
| 11>'010abc' |
+-------------+
| 1 |
+-------------+
1 row in set, 1 warning (0.00 sec)mysql> select '01abc'>0;
+-----------+
| '01abc'>0 |
+-----------+
| 1 |
+-----------+
1 row in set, 1 warning (0.00 sec)
二、字符串与字符串比较
字符串比较大小是逐位从高位到低位逐个比较(按ascii码),所以字符串类型的数字18<2
mysql> select "18"<"2";
+----------+
| "18"<"2" |
+----------+
| 1 |
+----------+
1 row in set (0.00 sec)mysql> select 'abc123'>'010abc';
+-------------------+
| 'abc123'>'010abc' |
+-------------------+
| 1 |
+-------------------+
1 row in set (0.00 sec)mysql> select '465543153571602432' <= '5';
+-----------------------------+
| '465543153571602432' <= '5' |
+-----------------------------+
| 1 |
+-----------------------------+
1 row in set (0.00 sec)
参考:
https://www.cnblogs.com/micrari/p/6358652.html MySQL中字符串与数字比较的坑https://www.cnblogs.com/FKdelphi/p/4683114.html 教程-最全ASCII 码对照表
MySQL 字符串和数值比较、字符串与字符串比较相关推荐
- MySQL 字符串和数值比较、字符串与字符串比较
一.字符串与数字比较 MySQL字符串和数字比较的坑:比较时会把字符串类型转成整数类型,从首字母开始,遇到非数字类型后终止. 原文: Comparison operations result in a ...
- MySQL日期、字符串、数值型转换
日期字符串提取月份,例如两个日期字符串间隔几个月,可以用 month('2019-05-01')-month('2019-12-02') 字符串转日期,使用类型转换函数: cast('2019-12- ...
- python的数值可以转换为字符串_python 数值转换为字符串Python对HTML转义字符进行反转义...
什么是转义字符 在 HTML 中 .& 等字符有特殊含义( 用于标签中,& 用于转义),他们不能在 HTML 代码中直接使用,如果要在网页中显示这些符号,就需要使用 HTML 的转义字 ...
- 盘点mysql中的那些函数-----数学与字符串函数(8.31更新)
盘点mysql中的那些函数 数学函数 平方根与取余 最小整数与最大整数 随机函数---rand 四舍五入函数----round 符号函数 幂运算函数 对数函数 角度和弧度函数 三角函数 字符串函数 字 ...
- mysql字符串逆时针旋转180度_mysql字符串操作
ASCII(str) 返回字符串str的第一个字符的ASCII值(str是空串时返回0) mysql> select ASCII('2′); -> 50 mysql> select ...
- mysql 判断等于空字符串,MySql判断是否为null或空字符串
MySql判断是否为null或空字符串 判断方法: if ISNULL(aBegBalRule) || LENGTH(trim(aBegBalRule))<1 THEN ELSE END IF ...
- python字符串拼接数字_python字符串和数值操作函数大全(非常全)
字符串和数值型数字的操作大全 1.反斜杠\的使用规则:一般使用表示续行的操作,可以其他符号相结合组成其他的一些使用符号,转义字符\'的使用会识别引号,使得字符串中的引号和外面本来的啊引号相区分. (1 ...
- 常见字符串和数值间得转换
字符串和数值之间的转换 c标准库: 字符串转数字 atof atoi atol atoll _atoi64 strtof strtod strtold strtol strtoll strtoul c ...
- mysql提取数字_Mysql中实现提取字符串中的数字的自定义函数分享
因需要在mysql的数据表中某一字符串中的字段提取出数字,在网上找了一通,终于找到了一个可用的mysql函数,可以有效的从字符串中提取出数字. 该mysql提取出字符串中的数字函数如下: 复制代码 代 ...
- ML之FE:数据处理—特征工程之特征三化(标准化【四大数据类型(数值型/类别型/字符串型/时间型)】、归一化、向量化)简介、代码实现、案例应用之详细攻略
ML之FE:数据处理-特征工程之特征三化(标准化[四大数据类型(数值型/类别型/字符串型/时间型)].归一化.向量化)简介.代码实现.案例应用之详细攻略 目录 真正意义的标准化与归一化 1.标准化/Z ...
最新文章
- Python学习笔记.OS学习笔记 OS操作系统(operating system)(一)
- 《Java基础入门》课后习题答案 资源分享
- java 查看变量类型
- Visual Studio 2017 社区版的安装与组件修改(C++)
- Codeigniter 用户登录注册模块
- itms-services 格式
- python 免费空间_总算找到php免费空间
- Spring事务如何集成到Mybatis之springboot事务
- Spring笔记02(3种加载配置文件的方式)
- 使用s:property value=4/是报错
- 图形学笔记1.直线扫描转换与devC的图形库ege扩展
- 雨过天晴电脑保护系统校园版
- 线性分类器及Python实现
- 苹果怎么用测试软件,iPhone 也能测量身高教你怎么用 iOS「测距仪」App
- mysql命令桌面壁纸_【upupoo动态桌面壁纸和mysql-jdbc.jar哪个好用】upupoo动态桌面壁纸和mysql-jdbc.jar对比-ZOL下载...
- 安卓应用加固壳判断java厂商_使用frida来hook加固的Android应用的java层
- Magento创建主题
- Lingoes安装词典和语音库
- 数商云采购管理系统支付结算功能详解,实现建筑工程企业采购业务智能化管理
- 每日文献:2018-01-10
热门文章
- php实例精通txt下载,PHP实例精通(1碟)
- html 中 超链接的写法,网页超链接样式的CSS写法
- 找出阿里云RDS数据库的IP地址
- html5如何实现语音点歌,怎么给手机点歌 怎么样用自己手机给对方手机点歌
- 计算机右键管理提示没有关联应用,win10系统计算机右键管理提示没有与之关联的程序的解决方法...
- css伪元素实现箭头和关闭及环形实心圆点
- 浅谈一下pyd文件的逆向
- 四参数旋转角异常,平面坐标方位角不准确的问题
- python——sys模块
- Go语言学习系列 -- 大道至简—GO语言最佳实践​​​​​​​