永发信息网

有1,3,5,7等几个id主键,能否一次用SQL查出是否存在?

答案:2  悬赏:0  手机版
解决时间 2021-04-01 12:31
  • 提问者网友:暮烟疏雨之际
  • 2021-03-31 20:20
有1,3,5,7等几个id主键,能否一次用SQL查出是否存在?
最佳答案
  • 五星知识达人网友:三千妖杀
  • 2021-03-31 21:41
用sql 查出所有在数据库中又满足你的id集合的结果,这个结果可以组装为id集合(这个集合是数据库真正存在的id集合),然后遍历你的待操作id集合,看里面元素是否在你的查询出来的集合中,然后执行你的处理就行了。
List ids ;//(1,3,5,7,15,); 你的全集
String sql = "select id from table where id in (:ids) "; //sql ,设置好条件
List existedIds = dao.query(sql) ; //查询已存在子集
for(String id: ids ){
if(existedIds.contains(id)){
//若这个id已经在数据库存在,则跳过
continue;
}
//执行你的操作

}

不一定要用sql吧,反正思路就是一次过用你的id集合查询出数据库中已存在的子集,然后用你的id集合去掉这部分子集就是你的下一步操作了
全部回答
  • 1楼网友:逃夭
  • 2021-03-31 23:06
你用的是db,数据库不同,我想方法应该差不多吧。
mysql中的方法就是 where id in(1,3,5,7) 如果不取这几个值 就用where id not in(1,3,5,7)追问你那查出的结果是什么?where id in不就只一个返回吗
我需要每个id都对应一个是否存在的结果呀。
比如
id 1 => true 存在
id 3 => false 不存在
id 5=> false 不存在
id 13 => true 存在追答你可以在in里查询你需要判断的数据,得到结果的ID集,再判断这些ID是否存在,就不用重复查询数据库了。
如 where di in(1,3,5) 返回的结果,你获取结果的集的id 如果 1或3存在,返回肯定就是1或3,没返回的就是不存的。
以我现在的了解,数据库还没有这个功能去判断。追问谢谢你说的也对的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯