首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >MySQL隐式类型注入与隐式转换

MySQL隐式类型注入与隐式转换

作者头像
Petrochor
发布于 2022-06-07 15:43:56
发布于 2022-06-07 15:43:56
2.1K0
举报
文章被收录于专栏:StephenStephen

在MySQL中执行SQL查询时,如果SQL语句中字段的数据类型和表中对应字段的数据类型不一致时,MySQL查询优化器会将数据的类型进行隐式转换。

以下面的数据为例,我根据 username 字段查询 user 表,得出如下结果:

代码语言:javascript
复制
SELECT * FROM `user` WHERE `username` = 0;

显而易见,这不是我们想要的结果。表中 username 字段是 string 类型,而我们传入的是 int 类型,MySQL在执行这段SQL语句时,将 int 类型的 0 转换为了 double 类型

下表是MYySQL隐式类型转换规则:

输入类型

表字段类型

转换后的类型

NULL

任意类型

NULL

STRING

STRING

STRING

INT

INT

INT

INT

TIMESTAMP

TIMESTAMP

INT

DATETIME

TIMESTAMP

INT

DOUBLE

DOUBLE

INT

STRING

DOUBLE

任意类型

DECIMAL

DECIMAL

任意类型

十六进制

二进制

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/12/05 ,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档