使用case来存在以检查数据库中是否存在记录

时间:2012-08-23 18:15:50

标签: java sql oracle prepared-statement

哪个查询会更快

  

EXISTS时的SELECT CASE(SELECT 1 FROM表WHERE条件)                 然后'Y'                 ELSE'N'            从双重结束

  

SELECT 1 FROM table WHERE condition

对于他们两个我将 fetchSize 设置为1。

但是,我想知道我是否使用第二个查询,我只需要检查 if(rs.next()),而对于第一个查询,我需要检查一个附加条件 rs.getString(1).equals( “Y”)。同时我想知道如果在sql中存在时,以某种方式使查询更快

我已经检查了其他问题The fastest way to check if some records in a database table?Fastest way to check if set exists in database set,他们谈到使用存在。所以,只是想知道我是否应该使用exists,而如果我需要使用它来使查询更快,那么它如何使查询更快?

2 个答案:

答案 0 :(得分:1)

关于你可以获得' no_data_found'或者' to_many_rows'导致阅读字典以获取错误代码等等使用语句' SELECT 1 FROM table WHERE condition'第一种方式会更快

答案 1 :(得分:0)

SELECT 1 FROM table WHERE condition

如果结果集没有返回任何行,则表示未满足条件,否则符合条件。

它更好,更清洁,更短,更快。