作家
登录

MySQL数据类型隐式转换规则

作者: 来源: 2017-12-20 16:04:49 阅读 我要评论

【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞?


MySQL数据类型隐式转换规矩

现象

今天碰到一个慢萌芽,萌芽日记找到慢萌芽语句是如许的:

  1. select * from convert_test where areacode=0001 and period>='20170511' and period<='20170511'

convert_test表构造如下:

  1. CREATE TABLE `convert_test` ( 
  2.     `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, 
  3.     `areacode` char(12) NOT NULL DEFAULT ''
  4.     `period` int(6) unsigned NOT NULL DEFAULT 0, 
  5.     `mid_price` int(10) unsigned NOT NULL DEFAULT 0, 
  6.     `mid_change` float NOT NULL DEFAULT 0, 
  7.     `updated_datetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
  8.     PRIMARY KEY (`id`), 
  9.     UNIQUE KEY `idx_areacode_period` (`areacode`,`period`) 
  10. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='隐式转换测试表'

表中数据42W以上。

为了查看这个语句是怎么萌芽的,我们在测试库中explain一下:

  1. mysql> explain select * from convert_test where areacode=0001 and period>='20170511' and period<='20170511'

结不雅如下:

可以看到,这里是没有效到索引的。

原因

有一个参数是 TIMESTAMP 或 DATETIME,并且别的一个参数是常量,常量会被转换为 timestamp


  推荐阅读

  【MYSQL】业务上碰到的SQL问题整理集合

【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞? 身为一名前端工程师, 对于 SQL懂得程度并不是很深刻, 盘点一些小我工作碰到的问题,给大年夜家普及下常识, >>>详细阅读


本文标题:MySQL数据类型隐式转换规则

地址:http://www.17bianji.com/lsqh/39991.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)