Django ORM 可以对列的特定值执行 ORDER BY 吗?

Can Django ORM do an ORDER BY on a specific value of a column?(Django ORM 可以对列的特定值执行 ORDER BY 吗?)
本文介绍了Django ORM 可以对列的特定值执行 ORDER BY 吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一张包含以下列的票"表

I have a table 'tickets' with the following columns

  • id - 主键 - 自增
  • 标题 - varchar(256)
  • status - smallint(6) - 可以是 1 到 5 之间的任何值,由 Django 处理

当我执行 SELECT * 我希望 status = 4 位于顶部的行时,其他记录将跟随它们.可以通过以下查询来实现:

When I'll do a SELECT * I want the rows with status = 4 at the top, the other records will follow them. It can be achieved by the following query:

select * from tickets order by status=4 DESC

这个查询可以通过 Django ORM 执行吗?哪些参数应该传递给 QuerySet.order_by() 方法?

Can this query be executed through Django ORM? What parameters should be passed to the QuerySet.order_by() method?

推荐答案

q = Ticket.objects.extra(select={'is_top': "status = 4"})
q = q.extra(order_by = ['-is_top'])

这篇关于Django ORM 可以对列的特定值执行 ORDER BY 吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Hibernate reactive No Vert.x context active in aws rds(AWS RDS中的休眠反应性非Vert.x上下文处于活动状态)
Bulk insert with mysql2 and NodeJs throws 500(使用mysql2和NodeJS的大容量插入抛出500)
Flask + PyMySQL giving error no attribute #39;settimeout#39;(FlASK+PyMySQL给出错误,没有属性#39;setTimeout#39;)
auto_increment column for a group of rows?(一组行的AUTO_INCREMENT列?)
Sort by ID DESC(按ID代码排序)
SQL/MySQL: split a quantity value into multiple rows by date(SQL/MySQL:按日期将数量值拆分为多行)