表名:tab1
字段1:地标
数据1:A广场,B广场,C大厦,D大厦查询:select * from tab1 where 地标 like '%A%'问题1: like '%A%'这样的查询方式,可以使用索引查询吗?
问题2: 数据1这种数据的索引怎么建立?
字段1:地标
数据1:A广场,B广场,C大厦,D大厦查询:select * from tab1 where 地标 like '%A%'问题1: like '%A%'这样的查询方式,可以使用索引查询吗?
问题2: 数据1这种数据的索引怎么建立?
2、
最好这样设计
地点
A大厦
B大厦
C大厦
D大厦
在此字段上建立索引
你用FIND_IN_SET、INSTR函数
like '%A%' 不会利用索引的。
like 'A%' 则可以使用索引。问题2: 数据1这种数据的索引怎么建立?
根据你这种应用,没有建立索引的必要。建议把表范式化,目前的表结构连第一范式也不符合。
-------------------
但对于我的表而言。。
表名:tab1
字段1:地标
数据1:A广场,B广场,C大厦,D大厦
字段1:地标都是一个意义啊。。
且这个字段的数据还是不断更新的。。
如果分成多个字段。。要很多啊。。明显也不合理啊。
select id from items where reviewid like '%45%' limit 5;
+----+-------------+-------+-------+---------------+-----+---------+------+-------+--------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+---------------+-----+---------+------+-------+--------------------------+
| 1 | SIMPLE | items | index | NULL | ewq | 4 | NULL | 19606 | Using where; Using index |
+----+-------------+-------+-------+---------------+-----+---------+------+-------+--------------------------+
1 row in set
mysql> 为什么key里显示使用了索引???like '%%'这样的不是不能用么