在django中使用ORDER BY FIELD(name,'Apple','Banana') [英] Use ORDER BY FIELD(name, 'Apple', 'Banana') in django

查看:478
本文介绍了在django中使用ORDER BY FIELD(name,'Apple','Banana')的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在Django中使用ORDER BY FIELD()(MySQL)。 Django是否支持?



所以在MySQL中,它看起来像:

   

我想在django ORM中使用。我怎样才能做到这一点。我可以使用 order_by()来做到这一点。或者使用 extra()



不这样工作:



Fruit.objects.all()。extra(order_by =FIELD(name,'Banana','Apple','Pear','Orange'))

解决方案

一个Google-FU发现: http://davedash.com/2010/02/11/retrieving-elements-in-a- specific-order-in-django-and-mysql /

  Fruit.objects.extra(
select = {'manual':FIELD(name,'Banana','Apple','Pear','Orange')},
order_by = ['manual']


I would like to use ORDER BY FIELD() (MySQL) in Django. Does Django support that?

So in MySQL it looks like:

SELECT * FROM fruit 
ORDER BY FIELD(name, 'Banana', 'Apple', 'Pear', 'Orange'), variety;

I would like use this in django ORM. How can i do that. Can i do that using order_by(). Or using extra() somehow.

Does not work like this:

Fruit.objects.all().extra(order_by="FIELD(name, 'Banana', 'Apple', 'Pear', 'Orange')")

解决方案

A little Google-FU found this: http://davedash.com/2010/02/11/retrieving-elements-in-a-specific-order-in-django-and-mysql/

Fruit.objects.extra(
    select={'manual': "FIELD(name, 'Banana', 'Apple', 'Pear', 'Orange')"},
    order_by=['manual']
)

这篇关于在django中使用ORDER BY FIELD(name,'Apple','Banana')的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆