MySQL选择IN范围


84

是否可以为查询的IN部分定义一个范围,像这样

SELECT job FROM mytable WHERE id IN (10..15);

代替

SELECT job FROM mytable WHERE id IN (10,11,12,13,14,15);

Answers:


153

您不能,但可以使用 BETWEEN

SELECT job FROM mytable WHERE id BETWEEN 10 AND 15

请注意,这BETWEEN是包含性内容,并且将包含ID为10和15的项目。

如果您不想包含,则必须退回到使用>and<运算符。

SELECT job FROM mytable WHERE id > 10 AND id < 15

1
如果要查询表中的前5个项目,该怎么办?例如id是1,2,5,6,7,8。在这种情况下,上述方法将仅返回1,2,5。
Soroosh

1
不明白你的意思。我建议写一个更详细的新问题。
ESG,

6

要选择数值范围内的数据,可以使用BETWEEN包含在内的数据。

SELECT JOB FROM MYTABLE WHERE ID BETWEEN 10 AND 15;

ESG的答案有什么区别?
Torsten

2
垃圾邮件重复项除外,这是将列和表大写的一种不良做法。列名不区分大小写,所以可以(例如,不会产生错误),但是表名在大多数Unix系统中都区分大小写。(但在Windows上,table-name也不区分大小写,因此此查询将在此成功)。总而言之,这是一个很好的计划,不要将人们与大写字母混淆。在ESG回答之后,如何解决这一问题超出了我的范围。
jeroen e
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.