django 查詢如何使用 or

參考:http://stackoverflow.com/questions/6567831/how-to-perform-or-condition-in-django-querysetpython

django自帶的orm,雖然給咱們寫代碼帶來了方便,可是因爲自己的一些限制,有些複雜的sql查詢語句沒辦法時間,今天就說一下django  orm中的  或者 查詢。sql

SELECT * from user where income >= 5000 or income is NULL.

  上面的sql語句咱們查詢收入大於5000或者收入 爲空的記錄。下面介紹兩種方法實現  or  查詢django

第一種方法:使用 Q查詢code

from django.db.models import Q
User.objects.filter(Q(income__gte=5000) | Q(income__isnull=True))

 

第二種方法:使用 管道符號  | ,orm

combined_queryset = User.objects.filter(income__gte=5000) | User.objects.filter(income__isnull=True)
ordered_queryset = combined_queryset.order_by('-income')                                                    
相關文章
相關標籤/搜索