python - SQLAlchemy:使用 in_ 运算符一次删除多条记录
问题描述
我有一张有数千行的表。我想使用 in 子句删除多行。
SQL 服务器代码:
DELETE tbl_Jenny_ACW_AG2_AGENT_DAY_Genesys_Stage
WHERE Avaya_Id IN ('','',''....'')
我正在尝试使用 SQLAlchemy 执行上述操作,
qry = (session.query(
tbl_Jenny_ACW_AG2_AGENT_DAY_Genesys_Stage.c.Avaya_Id,
func.count(),
)
.group_by(
tbl_Jenny_ACW_AG2_AGENT_DAY_Genesys_Stage.c.Avaya_Id,
)
# comment this line out to see all the groups
.having(func.count()>1)
)
dlt_dup = tbl_Jenny_ACW_AG2_AGENT_DAY_Genesys_Stage.delete().where(tbl_Jenny_ACW_AG2_AGENT_DAY_Genesys_Stage.c.Avaya_Id.in_(qry))
session.execute(dlt_dup)
上面的代码将查询结果并执行查询。但是,我无法删除重复记录,我得到的错误是 [参数:(1,)]
解决方案
qry = db.session.query(Tablename.ColumnName, func.count()).filter(condition=value).group_by(Tablename.ColumnName).all().
db.session.delete(qry)
推荐阅读
- python - 如何解决python中的410:Gone错误
- angular - Nebular Nb 输入空字符串
- reactjs - Disable select(dropdown) on checkbox click (React JS and Material UI)
- git - Intellij 作为合并工具无法正确检测编码
- wcf - 我可以在 IIS 上的 .Net Core 站点下运行 .Net 4.6 应用程序吗
- python - 如何删除熊猫中有英文句子的行
- sql-server - SQL Server 使用窗口函数计算 AVG()
- python - 在 Python Dash Bootstrap 组件中设置 dash-daq 图形高度
- python - 如何将数字从一个列表放入另一个列表?
- elasticsearch - 我可以在 multi_match 查询中找到最相关的字段吗?