在mysql中使用BETWEEN之后/之前使用AND或OR函数

时间:2017-01-23 04:34:01

标签: mysql

我正在使用像

这样的查询

WHERE this.ID BETWEEN 1 AND 11

但我想为此添加另一个ID

WHERE this.ID BETWEEN 1 AND 11 AND this.ID = 22

甚至

WHERE this.ID = 22 AND this.ID BETWEEN 1 AND 11

这会导致错误。

我是否坚持使用WHERE this.ID >= 1 AND this.ID <= 11 AND this.ID = 22?有更简单的方法吗?

2 个答案:

答案 0 :(得分:1)

当您使用 AND 时,它将检查ID是否必须等于1到11和22.

我不能同时拥有两个值。

您应该使用 OR 。但是当你使用OR条件时,你必须把它放在()中。所以其他条件将正常工作。

你可以在括号后添加其他条件。

WHERE (this.ID BETWEEN 1 AND 11 OR this.ID = 22)

答案 1 :(得分:0)

我在我的shell上试过了

SELECT * FROM tablename WHERE (id BETWEEN 1 AND 2) or (ID = 3)

这样可以得到没有错误的结果

SELECT * FROM tablename WHERE (id BETWEEN 1 AND 2) AND (ID =3) 

这会给出空结果而没有错误。

正如您所看到的,您正在两个ID之间获取结果,并且还传递具有不同ID的AND条件,结果将为空