zoukankan      html  css  js  c++  java
  • 064:ORM查询条件详解-in和关联模型查询

    ORM查询条件详解-in和关联模型查询:

    in:
    提取那些给定的 field 的值是否在给定的容器中。容器可以为 list 、 tuple 或者任何一个可以迭代的对象,包括 QuerySet 对象。示例代码如下:

    result = Article.objects.filter(id__in=[1,4,5])

    以上代码在翻译成 SQL 语句为如下:

    SELECT `article`.`id`, `article`.`title`, `article`.`content`, `article`.`category_id` FROM `article` WHERE `article`.`id` IN (1, 4, 5)

    实例截图如下:

    当然也可以传递一个 QuerySet 对象进去。示例代码如下:

        # 所有标题中包含fuck的分类:
        articles = Article.objects.filter(title__icontains='fuck')
        results = Category.objects.filter(article__in=articles)
        for item in results:
            print(item)
        print("#########以下是对应的SQL语句#########")
        print(results.query)

    以上代码的意思是获取那些文章标题包含 hello 的所有分类。将翻译成以下 SQL 语句,示例代码如下:

    SELECT `category`.`id`, `category`.`name` FROM `category` INNER JOIN `article` ON (`category`.`id` = `article`.`category_id`) WHERE `article`.`id` IN (SELECT U0.`id` FROM `article` U0 WHERE U0.`title` LIKE %fuck%)

    具体截图如下:

    related_query_name的书写方式:
     
  • 相关阅读:
    在controller间分享数据(第一种办法)
    AngularJS之Factory vs Service vs Provider
    directive和controller如何通信
    AngularJS 之Services讲解
    AngularJS心得体会
    int 和Integer
    2019天梯赛练习题(L2专项练习)
    2019天梯赛练习题(L1专项练习)
    Hash冲突的几种解决方法
    HashMap
  • 原文地址:https://www.cnblogs.com/zheng-weimin/p/10230245.html
Copyright © 2011-2022 走看看