首页 > 解决方案 > python django - 如果再次搜索多行的多列值并且几行不存在,则查询返回空白结果

问题描述

我有一个列表,即ids_found有几个值。这些值是数据库表中的主键news。如果表中存在所有相应的行,那么我会得到预期的结果,即ids_found_result. 但是,如果缺少其中任何一个,则结果将只是一个空列表。代码如下:

ids_found=[2,3,34]
ids_found_result=[]

clauses = ' '.join(['WHEN id=%s THEN %s' % (pk, i) for i, pk in enumerate(ids_found)])

ordering = 'CASE %s END' % clauses

ids_found_result = news.objects.filter(pk__in=ids_found).extra(
                                select={'ordering': ordering}, order_by=('ordering',))

ids_found_result = list(ids_found_result)

当数据库中缺少一行或多行时,如何使其产生结果?如果n缺少行数,则预期结果应该是 ids_found_result包含的元素减去n

标签: djangodatabaselist-comprehensiondjango-orm

解决方案


推荐阅读