看到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’都和它相等。從而就沒法使用索引了。
而反過來
可以看出對於數字的傳入字符串和數字都能用上索引