前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL隐式类型注入与隐式转换

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

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

在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 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档