2

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')")

4

1 回答 1

9

一点 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']
)
于 2012-06-29T19:19:31.700 回答