首页 > 解决方案 > 检查数据库中是否存在多个ID

问题描述

我有类似 ids = [1,2,3,4] 形式的数据,我想检查数据库中是否存在除这些 id 之外的数据,那么应该删除该数据。

像这样查询多个ID,但不知道如果除了数据库中的这些ID之外存在数据,我如何删除数据

query = MyModel.query.filter(id.in_(ids)).all()

编辑

这正是我需要的

devices = session.query(Model).filter_by(~Model.device_uuid.in_(devices_list), draft_id=draft.id).delete()

但我收到错误

filter_by() 接受 1 个位置参数,但给出了 2 个

标签: pythonflasksqlalchemyflask-sqlalchemy

解决方案


在您的 .all() 中,您得到的不是查询,而是数据行,每行数据都是一个 orm。您可以从数据库会话中删除 orms。

否则,您可以只使用 .delete() 而不是使用 .all(),这应该会从数据库中删除查询的结果。

请记住在删除后在您的数据库会话上调用 .commit()。


推荐阅读