首页 > 数据库 > mysql教程 > 如何在 PostgreSQL 中使用 NULLS LAST 对 Django 查询结果进行排序?

如何在 PostgreSQL 中使用 NULLS LAST 对 Django 查询结果进行排序?

Linda Hamilton
发布: 2024-12-30 22:32:11
原创
768 人浏览过

How to Order Django Query Results with NULLS LAST in PostgreSQL?

在 Django 中使用“NULLS LAST”对查询结果进行排序

在使用 PostgreSQL 时,您可能会遇到希望对模型进行排序的场景使用“NULLS LAST”将非空值优先于空值的结果选项。

尝试和问题

使用 extra(order_by=('-price', 'NULLS LAST')) 的初始方法可能会导致错误,“无法将关键字“NULLS LAST”解析为

解决方案

要实现所需的排序行为,请利用 Django 1.11 中引入的以下解决方案:

from django.db.models import F
MyModel.objects.all().order_by(F('price').desc(nulls_last=True))
登录后复制

此语法使用Django提供的F表达式,允许您使用可定制的参数指定字段排序。 desc(nulls_last=True) 参数确保 null 值被视为排序结果中的最后一个元素。

参考

更多信息,请参阅官方版本 1.11 和 3.1 的 Django 文档:

  • Django 1.11: https://docs.djangoproject.com/en/dev/releases/1.11/#expression-asc-and-desc-nulls-first-and-nulls-last-parameters
  • Django 3.1:https:// /docs.djangoproject.com/en/3.1/ref/models/expressions/#using-f-to-sort-null-values

以上是如何在 PostgreSQL 中使用 NULLS LAST 对 Django 查询结果进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板