您使用什么集合来接受oracle select 1的返回值?

时间:2018-12-17 03:53:45

标签: java oracle mybatis

我有一个oracle表,我想检查是否存在。

Select 1 from table where match_id = 'xxxx'将返回0行,1行或1的许多行,具体取决于匹配的数目。

我正在使用myBatis编写sql,那么我应该使用哪种集合来接受结果?

1 个答案:

答案 0 :(得分:3)

一种方法是通过从双重选择中使用EXISTS

SELECT
     CASE
          WHEN EXISTS (
               SELECT 1
               FROM tablename
               WHERE match_id = 'xxxx'
          ) THEN 1                  --exists
          ELSE 0                    --does not exists
     END
FROM dual;

或使用ROWNUM = 1限制结果,然后计数

select count(*) from 
(
  Select 1 from tablename where match_id = 'xxxx' and rownum = 1
);

两者应具有相似的性能,并且比在整个表上进行select count(*)更好。