MySQL选择范围内的值

105

查询语句中的IN部分是否可以定义一个范围,类似于这样

SELECT job FROM mytable WHERE id IN (10..15);
代替原来的
SELECT job FROM mytable WHERE id IN (10,11,12,13,14,15);
2个回答

201

你不能这样做,但是你可以使用 BETWEEN

SELECT job FROM mytable WHERE id BETWEEN 10 AND 15

请注意,BETWEEN是包容性的,会包括id为10和15的项。

如果您不想包含它们,必须使用><运算符。

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

8
为了选择数值范围内的数据,您可以使用包含的 BETWEEN
SELECT JOB FROM MYTABLE WHERE ID BETWEEN 10 AND 15;

ESG的答案有什么不同? - Torsten
10
这段话主要是讲一个不良实践,即在重复内容的情况下将列和表名写成大写。虽然列名不区分大小写,但是表名在大多数Unix系统中是区分大小写的(但在Windows上表名也不区分大小写,所以在那里执行此查询会成功)...总之,不必要地使用大写会让人们感到困惑,最好避免这种情况。我不明白为什么在ESG的回答之后,这个回答还能得到赞成。 - jeroen e

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接