我有一个带有一些记录的表(每个记录都有一个ID-主键)。现在,我需要从指定的列表/集中选择表中不存在的所有ID。我正在使用postgres数据库和sqlalchemy作为ORM。请建议必须执行此类查询。
答案 0 :(得分:0)
对于很大的集合来说可能并不高效,但是直接进行演示的流程却如此:
my_list = [1, 2, 3, 4, 5]
missing_from_table = []
for id in my_list:
result = session.query(Model.id).get(id) # result is a tuple
if not result:
missing_from_table.append(id)
print(f'The following ids are not in the table: {missing_from_table}')
另一个选择是:
my_list = [1, 2, 3, 4, 5]
all_ids = [r.id for r in session.query(Model.id).all()]
missing_from_table = [id for id in my_list if id not in all_ids]
答案 1 :(得分:0)
这是一个完全在数据库中运行的选项。它绕过了ORM,但仍然利用SQLAlchemy的便利进行会话和对象映射。
$this->validate($request,[
'name'=> 'required',
'matric'=> 'required',
'phone'=> 'required',
'email'=>'required',
'password'=> 'required'
]);