数据库 · 单选题 · 第 43 题
计算机基础面试八股 · 第 43 题
name 列是 VARCHAR 类型且建有索引,下列哪个条件会导致该索引无法使用?
- AWHERE name = 123
- BWHERE name = 'abc'
- CWHERE name LIKE 'ab%'
- DWHERE name IN ('a', 'b')
答案
A A. WHERE name = 123
解析
字符串列和数字比较时,MySQL 会把列值逐行转换成数字再比较,相当于在索引列上套了函数,索引失效。前缀匹配 LIKE 'ab%' 和 IN 都能走索引范围扫描。反过来,整型列和字符串常量比较时转换的是常量,索引仍然可用。