mysql日期隐式转换_关于MySQL隐式转换

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

1、表DDL

6125e14bb9764760c2944cfbbf80171f.png

2、传int的sql

bbf3523a3505211a9e557656d9ef321c.png

image2016-5-27%2016%3A10%3A11.png?version=1&modificationDate=1464336605000&api=v2

3、传字符串的sql

cd81b7c2268ce19006f417122cd70418.png

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

3e5ca99921b6af79111826109940859c.png

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

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

此外,还需要注意的是:

数字类型的0001等价于1

字符串的0001和1不等价

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

1、表DDL

2d1109afdc6a06b2bd191245872a0735.png

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

7d036f582b330c510ffe1820b4f2705c.png

3、不超范围传数字的sql

8ab5d07d3d10fa8b2d767fa5f3f789e4.png

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

1be4178e1cf85c31d0dc9ae63ac9fedc.png

687668f47ff4d6b7a0e0dc9b93bbc5f6.png

5、超出范围传数字的sql

1789fb98784fd3e3aa47caefc6801cbb.png

8c135420eeea197f4a87985e3ccbc835.png

关于MySQL隐式转换

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

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:http://www.cnblogs.com/Jason-Born/p/6489863.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值