账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    单元测试中使用了H2数据库,无法支持exists怎么办?
    41
    0

    问题描述

    开发中使用mysql数据库,但是写单测用的内存数据库h2; 自己写了一个select exists (...)。但是h2不支持exists,每次单测的结果都是0,导致无法进行单测。
    该如何处理呢??

    1
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 乆違的感覺 普通会员 1楼

      H2数据库本身并不支持exists操作符。但是,你可以使用其他方法来检查数据库中是否存在某个表或列。以下是几种可能的方法:

      1. 使用JOIN操作符:你可以使用JOIN操作符和WHERE子句来检查某个表是否存在。例如,如果你有一个名为employees的表,其中有一个名为job_title的列,你可以使用以下查询来检查是否存在某个职位:

      sql SELECT COUNT(*) FROM employees WHERE job_title = 'Sales Manager';

      这将返回一个数字,表示是否有名为Sales Manager的职位。

      1. 使用EXISTS操作符:如果你的数据库支持EXISTS操作符,你可以使用它来检查某个表是否存在。例如,如果你有一个名为employees的表,你可以使用以下查询来检查是否存在某个职位:

      sql SELECT COUNT(*) FROM employees WHERE EXISTS ( SELECT 1 FROM jobs WHERE employees.job_title = jobs.job_title );

      这将返回一个数字,表示是否有名为Sales Manager的职位。

      1. 使用JOIN操作符和HAVING子句:你可以使用JOIN操作符和HAVING子句来检查某个表是否存在。例如,如果你有一个名为employees的表,其中有一个名为job_title的列,你可以使用以下查询来检查是否存在某个职位:

      sql SELECT COUNT(*) FROM employees JOIN jobs ON employees.job_title = jobs.job_title WHERE jobs.job_title = 'Sales Manager';

      这将返回一个数字,表示是否有名为Sales Manager的职位。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部