mysql 類型轉換對索引的影響

看到http://www.2cto.com/database/201202/119999.html 這篇博文,自己驗證了一下

create table if not exists `test`(
  `id` int unsigned not NULL AUTO_INCREMENT, 
  `name` varchar(10) DEFAULT NULL, 
  `age` int(5) NOT NULL DEFAULT '0', 
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 
   PRIMARY KEY(`id`), 
   KEY `idx_name`(`name`),
   KEY `idx_age`(`age`),
   KEY `idx_create`(`create_time`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1;

表中插入一些數據


對字符類型的查詢時:

從此可以看出對於字符的查詢,如果傳入數字,則不能用索引,用單引號括起來才能用上索引。

原因是對於數字的1, 字符串‘1’, ‘01’,‘0001’都和它相等。從而就沒法使用索引了。

而反過來

可以看出對於數字的傳入字符串和數字都能用上索引


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章