• 077:【Django数据库】Q表达式详解


    Q表达式详解:

    如果想要实现所有价格高于100元,并且评分达到9.0以上评分的图书。那么可以通过以下代码来实现:

    books = Book.objects.filter(price__gte=100,rating__gte=9)

    以上这个案例是一个并集查询,可以简单的通过传递多个条件进去来实现。

    但是如果想要实现一些复杂的查询语句,比如要查询所有价格低于10元,或者是评分低于9分的图书。那就没有办法通过传递多个条件进去实现了。这时候就需要使用 Q表达式 来实现了。示例代码如下:

    from django.db.models import Q
    books = Book.objects.filter(Q(price__lte=10) | Q(rating__lte=9))

    以上是进行或运算,当然还可以进行其他的运算,比如有 & 和 ~(非) 等。一些用 Q 表达式的例子如下:

    from django.db.models import Q
    # 获取id等于3的图书
    books = Book.objects.filter(Q(id=3))
    # 获取id等于3,或者名字中包含文字"记"的图书
    books = Book.objects.filter(Q(id=3)|Q(name__contains("")))
    # 获取价格大于100,并且书名中包含"记"的图书
    books = Book.objects.filter(Q(price__gte=100)&Q(name__contains("")))
    # 获取书名包含“记”,但是id不等于3的图书
    books = Book.objects.filter(Q(name__contains='') & ~Q(id=3))

    实例代码截图:

  • 相关阅读:
    信息安全系统设计基础第二周学习总结
    java实验报告五
    java实验报告三
    java实验报告二
    java实验报告一
    mysql
    C语言理论知识
    数据存储与输出输入
    软件开发概述 编程语言概述
    C语言 常用单词
  • 原文地址:https://www.cnblogs.com/zheng-weimin/p/10252207.html
Copyright © 2020-2023  润新知