python - 检查数据库中是否存在多个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 个
解决方案
在您的 .all() 中,您得到的不是查询,而是数据行,每行数据都是一个 orm。您可以从数据库会话中删除 orms。
否则,您可以只使用 .delete() 而不是使用 .all(),这应该会从数据库中删除查询的结果。
请记住在删除后在您的数据库会话上调用 .commit()。
推荐阅读
- python - 无法将文件夹中的所有 TXT 转换为 CSV 文件
- python-3.x - pyinstaller 可执行文件失败
- android - 应用程序崩溃,空指针异常。列表视图给出空异常
- javascript - 如果没有发送任何内容,为什么当浏览器关闭时服务器上的我的 php SSE 文件继续工作?
- database - 不能在 DolphinDB 的函数定义中声明 share 语句
- mysql - 如何从多个选择查询中获取临时表中一行的列/字段数据?
- c# - 与已发布的已安装应用程序相比,代码的调试版本运行速度快 10 倍
- spring - 在 Spring 中使用 Thymeleaf 绑定列表。错误:对象验证失败
- javascript - 这行代码“var app = express()”是如何工作的?
- javascript - Google Chrome 中的 DOM 过载问题