mysql查询。需要帮助
说,如果表陷阱具有列 'ID' 和行内容mysql查询。需要帮助
7
8
9
10
11
12
13
14
SELECT id FROM trap
WHERE id<10 and id>12
这并没有给任何输出
但如果
SELECT id FROM trap
WHERE id>7 and id<14
给我所需的输出,即
8
9
10
11
12
13
问题是,您正在使用AND运算符,您应该使用OR。
SELECT id FROM trap WHERE id<10 OR id>12
显然id
不能在同一时间两个10和12,一个箱只能容纳一个值。
或者你可以写的声明为:
SELECT id FROM trap WHERE NOT(id BETWEEN 10 AND 12)
之所以SELECT id FROM trap WHERE id>7 and id<14
做工作是,它是可能的值在同一时间是BETWEEN
8和13(含) 。
然而,没有办法可以将值同时小于10和大于12。
所以如果条件是相互排斥的,你必须使用OR
,如果条件不排除一个和其他,那么你必须使用AND
。
您可以在NOT()
中包装测试以反转测试,这是因为AND
和OR
是完全相反的。
@John:谢谢。现在可以运行 – Coder17 2012-03-16 11:45:48
我认为你错了,或者你错误地表述了这个问题。
id < 10和id> 12不可能同时为真。这就是为什么你没有得到任何结果为您的第一个查询。
什么你要找的是:
SELECT id FROM trap WHERE id<10 OR id>12
您忘记了更正查询... – Johan 2012-03-16 11:51:03
没有整数比12大且小于10 – Antoine 2012-03-16 11:43:40
而且应该还是在第一个查询,因为我猜你正在寻找的是范围小于10或大于12 – pharalia 2012-03-16 11:43:57
这将有助于您确定您正在尝试做什么。如果您想确定哪些行在两个数字之间有值,那么您的第二个表单是正确的,正如您发现的那样。如果你想得到小于一个数字的任何数字,并且你想得到比另一个数字更多的数字,你必须将这两个事物与一个或不是一个和。但是哪一个是正确的取决于你的目标。 – 2012-03-16 11:54:53