2013-03-07 52 views
-3

任何人都可以告诉我这个查询有什么问题吗?这个代码不工作:如何在mysql查询中使用2个条件?

SELECT index_no FROM test_record_tbl WHERE year='2012' and year='2013'; 

此代码工作:

SELECT index_no FROM test_record_tbl WHERE year='2012' or year='2013'; 
+1

阅读关于“和”和“或”差,哥们 – bsiamionau 2013-03-07 07:07:10

+0

你说的不工作,你得到任何错误或没有结果的情况下,1是什么意思? – 2013-03-07 07:07:50

+0

如果没有结果,则取决于您的“和”或“或”条件。 – 2013-03-07 07:08:38

回答

2

如果我理解你对,你想得到index_no哪条记录属于20122013

此问题通常被称为Relational Division

SELECT index_no 
FROM test_record_tbl 
WHERE year IN ('2012', '2013') 
GROUP BY index_no 
HAVING COUNT(DISTINCT year) = 2 
3

你失败,因为一年可以(大概)永远是2012年和2013年

,是一个这意味着这两个条件必须是真实的,才能将该陈述评估为真实。

OR是指一个,或另一个或两者

+0

我想从2012年和2013年获取数据 如何更改它以获取两年的值 – 2013-03-07 07:18:53

0

andor之间的差。

您可以从未有2012年和2013年在同一时间,但一年可在一年下降无论是2012年或2013年。

这就是为什么你的第一个SQL查询带来了不结果,而第二没有。