码迷,mamicode.com
首页 > 数据库 > 详细

关于MySQL隐式转换

时间:2017-03-02 13:04:55      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:nload   隐式转换   就会   ddl   技术分享   mod   png   类型   注意   

一、如果表定义的是varchar字段,传入的是数字,则会发生隐式转换。

  1、表DDL

技术分享

 

2、传int的sql

技术分享

 

技术分享

3、传字符串的sql

技术分享

 

 

仔细看下表结构,rid的字段类型: 

技术分享

  

而用户传入的是int,这里会有一个隐式转换的问题,隐式转换会导致全表扫描。

把输入改成字符串类型,执行计划如下,这样就会很快了。

此外,还需要注意的是:

数字类型的0001等价于1

字符串的0001和1不等价

 

二、如果表定义的是int字段,传入的是字符串,在不超过int范围内,不会发生隐式转换,如果超出范围并且比较大小(以字符串类型比较‘$‘)会隐式转换。

1、表DDL

技术分享

 

2、不超范围传字符串的sql

 技术分享

 

3、不超范围传数字的sql

 技术分享

 

  

 

4、超出范围传字符串的sql

 技术分享

技术分享

 

5、超出范围传数字的sql

 技术分享

技术分享

 

关于MySQL隐式转换

标签:nload   隐式转换   就会   ddl   技术分享   mod   png   类型   注意   

原文地址:http://www.cnblogs.com/Jason-Born/p/6489863.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!