orm语句去重 distinct()
去重.distinct()
筛选时间区间
过滤不等于条件
-
from django.db.models import Q
-
myapps = App.objects.filter(~Q(name= ''))
1. 查找id大于100的对象
SQL语法
select * from Fundamentals where id > 100
Python ORM fiter 过滤语法
Fundamentals.objects.filter(id__gt=100)
2. 查找id大于等于100的对象
SQL语法
select * from Fundamentals where id >= 100
Python ORM fiter 过滤语法
Fundamentals.objects.filter(id__gte=100)
3. 查找id小于100的对象
SQL语法
select * from Fundamentals where id < 100
Python ORM fiter 过滤语法
Fundamentals.objects.filter(id__lt=100)
4. 查找id小于等于100的对象
SQL语法
select * from Fundamentals where id <= 100
Python ORM fiter 过滤语法
Fundamentals.objects.filter(id__lte=100)
5. 查找id大于1并且小于10的对象
SQL语法
select * from Fundamentals where id > 1 and id < 10
Python ORM fiter 过滤语法
Fundamentals.objects.filter(id__gt=1, id__lt=10)
6. 查找id包含(10,20,30)的对象
SQL语法
select * from Fundamentals where id in (10,20,30)
Python ORM fiter 过滤语法
Fundamentals.objects.filter(id__in=[10,20,30])
7. 查找id不包含(10,20,30)的对象
SQL语法
select * from Fundamentals where id not in (10,20,30)
对应SQL:select * from User where id not in (11,22,33)
User.objects.exclude(id__in=[11, 22, 3])
或
Python ORM fiter 过滤语法
Fundamentals.objects.filter(id__notin=[10,20,30])
8. 查找CashRatio字段不为空的对象
SQL语法
select * from Fundamentals where CashRatio is not null
Python ORM fiter 过滤语法
Fundamentals.objects.filter(CashRatio__isnull=True)
9. 查找TickerSymbol字段包含‘AA’的对象
SQL语法
select * from Fundamentals where TickerSymbol like '%AA%'
Python ORM fiter 过滤语法(区分大小写)
Fundamentals.objects.filter(TickerSymbol__contains="AA")
Python ORM fiter 过滤语法(不区分大小写)
Fundamentals.objects.filter(TickerSymbol__icontains="aa")
10. 查找TickerSymbol字段是‘AAL’的对象
SQL语法
select * from Fundamentals where TickerSymbol = 'AAL'
Python ORM fiter 过滤语法(区分大小写)
Fundamentals.objects.filter(TickerSymbol__exact="AAL")
Python ORM fiter 过滤语法(不区分大小写)
Fundamentals.objects.filter(TickerSymbol__iexact="aal")
11. 查找id从3-8的所有对象
SQL语法
select * from Fundamentals where id between 3 and 8
Python ORM fiter 过滤语法
Fundamentals.objects.filter(id__range=[3, 8])
12. 查找TickerSymbol字段以‘A’开头的对象
SQL语法
select * from Fundamentals where TickerSymbol like 'A%'
Python ORM fiter 过滤语法(区分大小写)
Fundamentals.objects.filter(TickerSymbol__startswith='A')
Python ORM fiter 过滤语法(不区分大小写)
Fundamentals.objects.filter(TickerSymbol__istartswith='a')
13.查找TickerSymbol字段值为‘AAL’的对象并按照id进行排序
SQL语法
select * from Fundamentals where TickerSymbol = 'AAL' order by id
Python ORM fiter 过滤语法(正序)
Fundamentals.objects.filter(TickerSymbol='AAL').order_by('id')
Python ORM fiter 过滤语法(倒序)
Fundamentals.objects.filter(TickerSymbol='AAL').order_by('-id')