大家好,我是知数堂SQL 优化班老师 网名:骑龟的兔子
上述问题的一般情况下,答案肯定是不能,但既然提问了,那肯定有能用的情况
为此,详细介绍下
首先我们先创建一个表
show create table test1\G
*************************** 1. row ***************************
Table: test1
Create Table: CREATE TABLE `test1` (
`id` varchar(10) DEFAULT NULL,
`n` varchar(10) DEFAULT NULL,
KEY `ix_id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
运行如下查询 ,得到3行数据
select * from test1;
+------+------+
| id | n |
+------+------+
| 1000 | NULL |
| NULL | NULL |
| 1 | a |
+------+------+
3 rows in set (0.00 sec)
运行问题中的 like ‘%abc%’ 形式的SQL 语句 如下
其中id 列是有索引ix_id 的
desc select * from test1 where id like '%1000%'\G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: test1
partitions: NULL
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 1
filtered: 100.00
Extra: Using where
1 row in set, 1 warning (0.