当前位置:网站首页>Mysql——》数据类型隐式转换
Mysql——》数据类型隐式转换
2022-07-24 18:22:00 【小仙。】
推荐链接:
总结——》【Java】
总结——》【Mysql】
总结——》【Spring】
总结——》【SpringBoot】
Mysql——》索引存储模型推演
当两个不同类型的数据进行运算时,为了使得它们能够兼容,MySQL 可能会执行隐式的数据类型转换(Implicit type conversion)
一、MySQL 自动将字符串转换为数字
- 字符串是以数字开头,且全部为数字,则转换的数字结果为整个字符串
- 字符串是以数字开头,且部分为数字,则转换的数字结果为截止到第一个不是数字的字符
- 字符串不是以数字开头,则转换的数字结果为0
-- 字符串以数字开头,且全部为数字
SET @str1 := '123';
SELECT @str1 = 123;-- 结果:1,代表true
SELECT @str1 = '123';-- 结果:1代表true
SELECT @str1 + 1;-- 结果:124
-- 字符串以数字开头,且部分为数字
SET @str2 := '123abc';
SELECT @str2 = 123;-- 结果:1,代表true
SELECT @str2 = '123';-- 结果:0,代表false
SELECT @str2 + 1;-- 结果:124
-- 字符串不是以数字开头
SET @str3 := 'abc123';
SELECT @str3 = 123;-- 结果:0,代表false
SELECT @str3 = '123';-- 结果:0,代表false
SELECT @str3 + 100;-- 结果:100
二、MySQL 使用函数将数字转换为字符
-- CAST()函数将数字显式转换为字符串
SELECT 1.1, CAST(1.1 AS CHAR);
-- CONCAT()函数将数字隐式转换为字符串
SELECT 1.1, CONCAT(1.1);
三、官方文档关于隐式转换的描述
以下规则描述了比较操作如何进行转换:
- 两个参数中至少有一个是 null 时,比较的结果也是 null,另外使用 <=> 对两个 null 做比较时会返回 1,这两种情况都不需要做类型转换
- 两个参数都是字符串,会按照字符串来比较,不做类型转换
- 两个参数都是整数,按照整数来比较,不做类型转换
- 十六进制的值和非数字做比较时,会被当做二进制串
- 有一个参数是 timestamp 或者 datetime,并且另外一个参数是常量,常量会被转换为 timestamp
- 有一个参数是 decimal 类型,如果另外一个参数是 decimal 或者整数,会将整数转换为 decimal 后进行比较,如果另外一个参数是浮点数,则会把 decimal 转换为浮点数进行比较
- 其他情况下,两个参数都会被转换为浮点数再进行比较
边栏推荐
- How to quickly upload files to Google Lab
- Learn redisson from scratch ------- topics (subscription and distribution)
- XSS绕过姿势总结
- 可撤销并查集板子
- 5. Reference type and value type as function parameters?
- ORM student management system
- File upload vulnerability -.User.ini and.Htaccess
- Variable and immutable data types
- KiB、MiB与KB、MB的区别
- The 5th Digital China Construction summit opened in Fuzhou, Fujian
猜你喜欢

jmeter --静默运行

Shanghai Jiaotong University team used joint deep learning to optimize metabonomics research

In depth analysis of the famous Alibaba cloud log4j vulnerability

The 5th Digital China Construction summit opened in Fuzhou, Fujian

CF. Bits And Pieces(子集状压dp + 剪枝)

Number of times a number appears in an ascending array

Escape character in JS?

Mid year inventory | in 2022, PAAS will be upgraded again

Use of jumpserver

Typora 它依然是我心中的YYDS 最优美也是颜值最高的文档编辑神器 相信你永远不会抛弃它
随机推荐
ORM student management system
The 5th Digital China Construction summit opened in Fuzhou, Fujian
web渗透经验汇总ing
pycharm配置opencv库
Just one dependency to give swagger a new skin, which is simple and cool!
[OBS] cooperation between video and audio coding and RTMP transmission
XSS绕过姿势总结
Pycharm configuring opencv Library
Show or hide password plaintext + password box verification information
middleware
如何用WebGPU流畅渲染百万级2D物体?
排序的几种方式for while 还有sort
Namespace:集群环境共享与隔离
文件上传漏洞——.user.ini与.htaccess
Mac database management software Navicat premium essentials mac
Escape character in JS?
【校验】只能输入数字(正负数)
【obs】依赖库: x264 vs 构建
6126. Design food scoring system
微信小程序逆向