java - 你用什么集合来接受oracle select 1的返回值?

标签 java oracle mybatis

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

从表中选择 1,其中 match_id = 'xxxx' 将返回 0 行、1 行或多行 1,具体取决于匹配项的数量。

我使用myBatis来编写sql,那么我应该使用什么样的集合来接受结果?

最佳答案

一种方法是通过从双重中选择来使用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(*) 更好。

关于java - 你用什么集合来接受oracle select 1的返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53808752/

相关文章:

java - 在java代码示例中,什么是引用,什么是值?

java - 在回收器 View 中的嵌套回收器 View 内的嵌套列表中添加项目

java - 一对一 hibernate 映射

android - 你能告诉我如何从 Oracle 数据库中检索图像到我的 android Activity 吗

java - 有没有办法在 MyBatis 的 foreach 中使用枚举序数

java - 如何在 Java 中使用 mustache 遍历 map

Oracle 空间多边形

java - 如何使用以下详细信息将 java 对象传递给 oracle 存储过程

java - MyBatis - 在 foreach 中绑定(bind)参数

java - 如何在 MyBatis Insert 中使用 Mysql 触发器生成的值填充对象属性