如何在mysql查询中使用2个条件?

时间:2013-03-07 07:04:55

标签: java mysql sql

有谁能告诉我这个查询有什么问题?此代码无效:

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';

3 个答案:

答案 0 :(得分:3)

你失败了,因为这一年(可能)从来都不是2012年和2013年。

并且是一个独占运算符,意味着两个条件必须正确才能使语句评估为真。

OR表示一个,或另一个,或两者

答案 1 :(得分:2)

如果我理解正确,您希望获得index_no哪个记录属于2012年和2013

此问题通常称为Relational Division

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

答案 2 :(得分:0)

andor之间存在差异。

您可以从不同时拥有2012年和2013年,但2012年或2013年可能会下降一年。

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