SELECT ... WHERE COL IN(A,B)
or
SELECT ... WHERE (COL = A or COL = B)
Run Code Online (Sandbox Code Playgroud)
我试图找出这两种结构之间的区别是什么?
如果用于接近100万大关的结果集,是否会有显着的性能提升?
mysql> describe select * from users where id = 1 or id = 2;
+----+-------------+-------+-------+---------------+---------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+---------------+---------+---------+------+------+-------------+
| 1 | SIMPLE | users | range | PRIMARY | PRIMARY | 4 | NULL | 2 | Using where |
+----+-------------+-------+-------+---------------+---------+---------+------+------+-------------+
1 row in set (0.01 sec)
mysql> describe select * from users where id in (1,2);
+----+-------------+-------+-------+---------------+---------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+---------------+---------+---------+------+------+-------------+
| 1 | SIMPLE | users | range | PRIMARY | PRIMARY | 4 | NULL | 2 | Using where |
+----+-------------+-------+-------+---------------+---------+---------+------+------+-------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
从DESCRIBE陈述的输出来看- 它们是相同的.
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |