Django ORM可以对列的特定值执行ORDER BY吗? [英] Can Django ORM do an ORDER BY on a specific value of a column?
本文介绍了Django ORM可以对列的特定值执行ORDER BY吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
- id - 主键 - 自动增量
- title - varchar(256)
- status - smallint(6) - Django可以处理1到5之间的任何值
当我做一个 SELECT *
我希望行 status = 4
在顶部,其他记录将跟随他们。可以通过以下查询来实现:
select * from ticket order by status = 4 DESC
可以通过Django ORM执行此查询吗?什么参数应该传递给 QuerySet.order_by()
方法?
解决方案
pre> q = Ticket.objects.extra(select = {'is_top':status = 4})
q = q.extra(order_by = ['-is_top'] )
I have a table 'tickets' with the following columns
- id - primary key - auto increment
- title - varchar(256)
- status - smallint(6) - Can have any value between 1 and 5, handled by Django
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
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吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文