目录
需要解决的问题
从数据库表A中拉取一些ID数据,一行ID数据可能包含多个ID(逗号分隔),然后对这些ID进行汇总、去重,并用来从表B中查询数据。
ID数据在表中可能是下面这样的:
| ID |
|---|
| 2 |
| 2,3 |
| 123,4,3 |
期望得到:"2,3,123,4"(顺序不重要)。然后从表B中根据ID查询数据:
select * from B where id in (2,3,123,4);
处理步骤
1. 从表A中拉取所有的ID,并以逗号分隔
select group_concat(ID) allIds from A;
得到:2,2,3,123,4,3
2. 使用Python去重
## 字符串转list
list = str.split("2,2,3,123,4,3", ",")
## list转set
idSet = set(list)
## 或者字符串直接转set:idSet = set(str.split("2,2,3,123,4,3", ","))
## 统计ID数量
len(idSet)
## set转字符串 / list转字符串
idSetStr = ",".join(s)
得到:2,3,123,4。
完成。
本文介绍了一种从数据库表中提取并汇总ID的方法,通过SQL查询与Python处理实现ID的去重,最终用于从另一张表中高效查询数据。
1058

被折叠的 条评论
为什么被折叠?



