python 列表输入sql_如何从输入列表/数组创建onecolumn SQL表?

您需要在创建成员计数的子查询中创建一个子查询,然后使用GROUP BY语句执行一个简单的除数查询,但要针对IN static_set子句,而不是针对另一个表。因为这是python,所以您已经知道静态集的大小。在

我假设您已经有一个数据库游标,并且该表名为GroupMembers:MEMBERSHIP_QUERY = '''

SELECT gm.group, mc.memberscount = %(len)s AS type

FROM groupmembers gm

JOIN (SELECT "group", COUNT(DISTINCT members) as memberscount

FROM groupmembers

GROUP BY "group") mc

ON gm.group = mc.group

WHERE gm.members IN %(set)s

GROUP BY gm.group, mc.memberscount

HAVING COUNT(DISTINCT gm.members) = %(len)s;

'''

def membership(members):

# obtain a cursor

for row in cursor.execute(MEMBERSHIP_QUERY, dict(len=len(members), set=members)):

yield dict(group=row[0], type=row[1])

因此,不需要使用临时表来执行此查询。在

如果您确实需要临时表用于其他目的,则使用^{}插入一组行最简单:

^{pr2}$

注意,.executemany()需要一个序列;每个条目都是一个行数据序列,在本例中,每个条目只包含一个名称。我生成一个单项元组的列表来填充表。在

或者,您也可以使用映射序列,并使用%(name)s参数语法(因此行数据序列变成[dict(name=name) for name in members])。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值