选择 BETWEEN

你可以使用 BETWEEN 子句替换大于等于且小于等于条件的组合。

数据

+----+-----------+
| `id` | username  |
+----+-----------+
|  1 | admin     |
|  2 | root      |
|  3 | toor      |
|  4 | mysql     |
|  5 | thanks    |
|  6 | java      |
+----+-----------+

查询运算符

SELECT * FROM stack WHERE id >= 2 and id <= 5; 

与 BETWEEN 类似的查询

SELECT * FROM stack WHERE id BETWEEN 2 and 5; 

结果

+----+-----------+
| `id` | username  |
+----+-----------+
|  2 | root      |
|  3 | toor      |
|  4 | mysql     |
|  5 | thanks    |
+----+-----------+
4 rows in set (0.00 sec)

注意

BETWEEN 使用 >= 和 <=,而不是 > 和 <。

使用 NOT BETWEEN

如果你想使用负片你可以使用 NOT。例如 :

SELECT * FROM stack WHERE id NOT BETWEEN 2 and 5; 

结果

+----+-----------+
| `id` | username  |
+----+-----------+
|  1 | admin     |
|  6 | java      |
+----+-----------+
2 rows in set (0.00 sec)

注意

不能使用 > 和 < 而不是 >= 和 <= 也就是说,WHERE id NOT BETWEEN 2 and 5 与 WHERE (id < 2 OR id > 5) 相同。

如果你在 BETWEEN 搜索中使用的列上有索引,MySQL 可以使用该索引进行范围扫描。