如何根据同一列的两个等于条件检索记录?

时间:2013-04-18 05:01:55

标签: sql oracle hibernate oracle10g hql

我有一个包含列ID(主键,数字),名称(varchar),值(数字)和键(数字)的表。我想检索所有具有key = 1和key = 2的记录。我可以使用not equals condition(!=)来编写查询但这会使查询很长。这就是我试过的。

SELECT * FROM USER_DETAILS WHERE NAME='sam' AND
KEY != 3 AND KEY != 4 AND KEY != 5 AND KEY != 6 AND KEY != 7 AND KEY != 8 AND 

等等。你能建议我一个Oracle查询,我可以检索key = 1和key = 2的记录,而不是检查不等于条件。

更新:正如答案所示,我想知道Hibernate是否支持IN

2 个答案:

答案 0 :(得分:3)

SELECT * FROM USER_DETAILS
WHERE
KEY=1 OR KEY=2

SELECT * FROM USER_DETAILS
WHERE
KEY IN (1,2)

答案 1 :(得分:3)

在Hibernate中支持IN OPERATOR。您应该编写以解决问题的查询是:

SELECT * FROM USER_DETAILS WHERE NAME='sam' AND KEY IN (1,2)