FILE_IN_SET IN 使用方法对比
user表数据
id | name |
---|---|
1 | 小明 |
2 | 小红 |
3 | 小李子 |
现在查询id为 1,3的数据
select * from `user` where id in(1,3)
select * from `user` where FIND_IN_SET(id, '1,3')
使用explain命令查询运行情况
- IN命令结果
explain
select * from `user` where id in(1,3)
id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
---|---|---|---|---|---|---|---|---|---|
id | SIMPLE | user | range | PRIMARY | PRIMARY | 4 | 2 | Using where |
type = range 索引范围扫描
- FIND_IN_SET 结果
explain
select * from `user` where FIND_IN_SET(id, '1,3')
id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
---|---|---|---|---|---|---|---|---|---|
id | SIMPLE | user | ALL | 3 | Using where |
type=ALL 全盘扫描 效率低下不推荐使用
结论
IN 效率高与 FIND_IN_SET
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。