使用集合的思路解决“从数字列表中选择在数据库表的id字段中没有对应项的那些”问题

  最近做业务遇到一个问题:我从其他渠道获取到一批id列表list1,然后想判断一下,这些id中有哪些是本地数据库中没有的,找到这些在本地数据库中没有的id然后构建详情数据insert到本地数据库中。

  从网上找了一个issue,给出解决思路不是很理想,因为我这个list1的大小是几万个,不可能手动去构建。

  经过跟同事的讨论想出了使用集合的差集运算解决这个问题(自己想问题容易钻牛角尖,还是建议多跟同事讨论)。

  解决的具体思路是这样的:

  首先将从其他渠道获取的list1转换成集合1(set1),然后去本地数据库中找到对应表中的所有现存的id组合成的集合2(set2),然后做集合的差集运算(注意是set1-set2),这样就得到了要往数据库中insert的这些集合了。

  下面是自己使用ipython写的一个demo:

  对了,本文只提供解决问题的思路,具体业务代码的编写需要大家自己实现。

posted on 2020-09-29 16:02  江湖乄夜雨  阅读(176)  评论(0编辑  收藏  举报