django mysql模糊查询_Django数据库模糊、统计查询

本文详细介绍了如何在Django中进行数据库的模糊查询,包括使用Q对象进行复杂查询,以及大于、小于、等于等比较操作。此外,还讲解了Django的聚合查询功能,如使用aggregate和annotate进行平均值、计数、最大值、最小值和总和的计算,并提供了多个示例来说明其用法。
摘要由CSDN通过智能技术生成

一、Django数据库模糊查询

1.1 Q查询

1 from django.db.models importQ2 Q(question__startswith='What')3

4 Q(question__startswith='Who') | Q(question__startswith='What')5

6 #等同于以下SQL语句:

7 WHERE question LIKE 'Who%' OR question LIKE 'What%'

8

9

10 Q(question__startswith='Who') | ~Q(pub_date__year=2018)11

12

13 Poll.objects.get(14 Q(question__startswith='Who'),15 Q(pub_date=date(2018, 8, 8)) | Q(pub_date=date(2018, 8, 6))16 )17 #等同于以下SQL语句:

18

19 SELECT * from polls WHERE question LIKE 'Who%'

20 AND (pub_date = '2017-05-02' OR pub_date = '2009-05-06')

21

22 Problems.objects.filter(Q(tag__contains='search')).order_by("-weight")

1.2  大于、大于等于、小于、小于等于:

1 #__gt 大于>

2 #__gte 大于等于>=

3 #__lt 小于<

4 #__lte 小于等于<=

5

6 Model.objects.filter(age__gt=10) #查询年龄大于10岁的人

7 Model.objects.filter(age__gte=10) #查询年龄大于等于10岁的人

8 Model.objects.filter(age__lt=10) #查询年龄小于10岁的人

9 Model.objects.filter(age__lte=10) #查询年龄小于等于10岁的人

10

11 #不等于/不包含于

12 Model.objects.filter().excute(age=10) #查询年龄不为10的人

13 Model.objects.filter().excute(age__in=[10, 20]) #查询年龄不在 [10, 20] 的人

1.3 filter中的模糊操作

#__exact 精确等于 like 'aaa'#__iexact 精确等于 忽略大小写 ilike 'aaa'#__contains 包含 like '%aaa%'#__icontains 包含,忽略大小写 ilike '%aaa%',但是对于sqlite来说,contains的作用效果等同于icontains。#__startswith 以…开头#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值