Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Django:如何筛选字段包含在传递值中的行?_Sql_Django_Django Models - Fatal编程技术网

Sql Django:如何筛选字段包含在传递值中的行?

Sql Django:如何筛选字段包含在传递值中的行?,sql,django,django-models,Sql,Django,Django Models,MyModel.objects.filter(field\u icontains=value)返回其field包含value的所有行。如何做相反的事情?也就是说,构造一个查询集,返回值中包含字段的所有行 最好不使用自定义SQL(即仅使用ORM)或不使用后端相关SQL。field\u icontains和类似内容直接编码到ORM中。另一个简单的版本不存在 您可以使用中描述的where参数 在本例中,您将使用以下内容: MyModel.objects.extra(where=["%s LIKE CO

MyModel.objects.filter(field\u icontains=value)
返回其
field
包含
value
的所有行。如何做相反的事情?也就是说,构造一个查询集,返回
值中包含
字段的所有行


最好不使用自定义SQL(即仅使用ORM)或不使用后端相关SQL。

field\u icontains
和类似内容直接编码到ORM中。另一个简单的版本不存在

您可以使用中描述的
where
参数

在本例中,您将使用以下内容:

MyModel.objects.extra(where=["%s LIKE CONCAT('%%',field,'%%')"], params=[value])
当然,请记住,DMB之间没有标准的连接方法。据我所知,没有办法满足您避免后端依赖SQL的要求

如果您可以使用字典列表而不是查询集,那么您可以这样做:

qs = MyModel.objects.all().values()
matches = [r for r in qs if value in r[field]]
当然,这对于大型数据集来说并不理想