当前位置: 首页 > 面试题库 >

在查询集中过滤空或NULL名称

酆出野
2023-03-14
问题内容

我有first_namelast_namealias(可选),我需要寻找。因此,我需要一个查询来为我提供所有设置了别名的名称。

仅在我可以做的情况下:

Name.objects.filter(alias!="")

那么,什么等同于以上内容?


问题答案:

你可以这样做:

Name.objects.exclude(alias__isnull=True)

如果你需要排除空值和空字符串,则首选方法是将条件链接在一起,如下所示:

Name.objects.exclude(alias__isnull=True).exclude(alias__exact='')

将这些方法链接在一起基本上可以独立地检查每个条件:在上面的示例中,我们排除了其中aliasnull 或空字符串的行,因此你将获得所有Name具有非空非空alias字段的对象。生成的SQL如下所示:

SELECT * FROM Name WHERE alias IS NOT NULL AND alias != ""

你还可以将多个参数传递给的单个调用exclude,这将确保仅将满足所有条件的对象排除在外:

Name.objects.exclude(some_field=True, other_field=True)

在此,排除其中some_fieldother_field为true的行,因此我们得到两个字段都不为真的所有行。生成的SQL代码看起来像这样:

SELECT * FROM Name WHERE NOT (some_field = TRUE AND other_field = TRUE)

另外,如果你的逻辑比这更复杂,则可以使用Django的Q对象:

from django.db.models import Q
Name.objects.exclude(Q(alias__isnull=True) | Q(alias__exact=''))


 类似资料:
  • 问题内容: 我想问一下是否有可能使用hibernate方式做到这一点。假设我已经运行了HQL并检索了一个集合。是否可以使用hibernate进一步过滤它? 我试图在标头类中使用,并在查询之前添加session.enable(),但似乎无法正常工作。 样例代码 精简HQL 问题答案: 不。至少不是您问的方式。一旦您要求Hibernate(使用方法)访问数据库,Hibernate就发挥了作用,结果现在

  • 本文向大家介绍MySQL查询空字段或非空字段(is null和not null),包括了MySQL查询空字段或非空字段(is null和not null)的使用技巧和注意事项,需要的朋友参考一下 现在我们先来把test表中的一条记录的birth字段设置为空。 mysql> update test set t_birth=null where t_id=1; Query OK, 1 row affe

  • 问题内容: 建议的用于检查查询是否返回任何结果的惯用法是什么? 例: 我想有几种不同的检查方法,但是我想知道一个有经验的Django用户将如何做。文档中的大多数示例只是忽略了什么都没有发现的情况… 问题答案:

  • 问题内容: 我有一个带有许多字段的表。我正在尝试在asp.net中创建搜索过滤器,以便用户可以按一个或多个字段进行搜索。所以基本上我想创建一个包含4个参数的存储过程,如果它不为null,它将把参数附加到WHERE子句中。 TableExample有4列,Col1 Col2 Col3 Col4 我希望有一种方法可以用一个存储过程完成此操作,而不必为每种可能的组合创建一个。 我正在尝试类似的方法,虽然

  • 问题内容: 示例:存储在索引中的文档表示测试分数和有关每个测试的元数据。 我需要能够过滤掉除最低分数以外的所有分数,并为每个应试者返回与该测试相关的元数据。所以我的预期结果是: 我现在看到的唯一方法是,首先通过用户使用嵌套的最小聚合来进行术语聚合,以获得最低分。 然后,我必须获取该查询的结果,并对每个用户进行过滤查询,然后根据最低得分值进行过滤,以获取其余的元数据。Yu 我想知道是否有一种方法可以

  • 问题内容: “过滤后的查询和过滤器”与“根查询和过滤器”之间有什么区别吗?例如 情况1: 情况2: 我在http://elasticsearch-users.115913.n3.nabble.com/Filtered-query-vs-using- filter-outside-td3960119.html中 找到了此讨论,但所引用的URL是404,并且解释过于简洁我。 请示教或提供指出这些区别的