美文网首页
F查询和Q查询

F查询和Q查询

作者: wit92 | 来源:发表于2020-06-16 09:52 被阅读0次
  1. F查询
    查询条件是字段间的比较
class Book(models.Model):
    title = models.CharField(max_length=32)
    buy_num=models.BigIntegerField()
    keep_num=models.BigIntegerField()

查询所有购买数大于收藏数的书籍

Book.objects.filter(buy_num__gt=F("keep_num"))
<QuerySet [<Book: Book object>, <Book: Book object>]>
for i in  Book.objects.filter(buy_num__gt=F("keep_num")):
    print(i.title)

打印结果:

django
c++

扩展的两个:
①将每种书籍的购买数+1000
Book.objects.all().update(buy_num=F("buy_num")+1000)
返回结果是3,表示执行了三条记录

②将所有书籍的名字前面加上“最新版”三个字

from django.db.models.functions import Concat
from django.db.models import Value
Book.objects.filter().update(title=Concat( Value("计算机出版社"),F("title"),Value("最新版")))

注意:filter()如果不传参数的话,表示取所有的,等价于all()

2.Q查询
| 表示取或
& 表示取且
~ 表示取反
Q(条件1) | Q(条件2)
Q(条件1) & Q(条件2)
Q(条件1) & ~Q(条件2)
当Q查询和关键字查询都有的时候,Q查询要写在前面

from django.db.models import F,Q

Book.objects.filter(Q(title__contains="c++")|Q(buy_num__gt=1000),keep_num__lt=9)

打印结果:

<QuerySet [<Book: Book object>]>
Book.objects.filter(Q(title__contains="c++")|Q(buy_num__gt=1000),keep_num__lt=9).first().title

打印结果:

'计算机出版社c++最新版'

相关文章

  • 数据库基本操作Q和F

    Q和F F使用查询条件的值,专门取对象中某列值的操作 Q 构建搜索条件 通常,Q()对象使得定义查询条件然后重用成...

  • Django: 查询

    使用Q进行复杂的查询 模糊查询 精确匹配 聚合查询

  • Solr6.4.2查询&高亮

    查询web界面如下: 基本查询配置 q 查询的关键字,此参数最为重要,例如,q=id:1,默认为q=*:* ,相...

  • Linux学习- PRM包管理-查询方法

    rpm -q 包名 查询包是否安装-q query 查询rpm -qa 查询所有已经按照的rpm包-a all...

  • RPM命令管理-查询

    查询是否安装 rpm -q 包名 -q(query)查询 -a(all)所有 查询软件包的详细信息 rpm -qi...

  • 刷leetCode算法题+解析(四十六)

    查询后的偶数和 题目:给出一个整数数组 A 和一个查询数组 queries。对于第 i 次查询,有 val = q...

  • Navicat常用快捷键

    Navicat常用快捷键 快捷键说明Ctrl + Q打开查询窗口,新建查询窗口F6打开一个mysql命令行窗口Ct...

  • mongodb总结

    Q: 查询字段是否存在 Q: 查询不存在字段field的数据并且设置字段为newValue Q: 数据中存在知识...

  • URI Search

    定义 通过 URI query 实现搜索 指定字段 v.s 范查询 q=title:2012q=2012 查询所...

  • 3-3(linux-man、locate、whatis、bzip

    线上查询命令 man 查询ls说明(q退出) man ls locate 定位文件和目录 定位含有test的文件或...

网友评论

      本文标题:F查询和Q查询

      本文链接:https://www.haomeiwen.com/subject/vbmlxktx.html