zoukankan      html  css  js  c++  java
  • python测试开发django170.ORM查询之contains和icontains 上海

    前言

    平常用ORM大部分使用的是get、filter、exclude这三种能满足基本的需求,有时我们需要满足一些复杂的查询场景,在页面上传不同参数满足查询需求。
    ORM 条件查询使用field__结合 condition 的方式来使用的,比如查询包含指定的字符,可以用contains和icontains。

    contains和icontains 区别

    比如有下面这张表

    MyDjango>python manage.py shell
    >>> Product.objects.filter(name__contains='yy')
    <QuerySet [<Product: Product object (2)>, <Product: Product object (3)>]>
    >>> Product.objects.filter(name__icontains='yy')
    <QuerySet [<Product: Product object (2)>, <Product: Product object (3)>, <Product: Product object (4)>]>
    >>>
    

    contains表示精确大小写,icontains中的i表示忽略大小写

    • filter(name__contains='yy') 是查询name包含小写的yy的内容
    • filter(name__icontains='yy')是查询name包含yy的字符,不区分大小写

    对应SQL语句

    SQL 查询like 后面带上 BINARY 就是精确大小写查询

    • name__contains='yy' 对应sql语句 where name like BINARY '%yy%'
    • name__icontains='yy' 对应SQL 语句 where name like '%yy%'
    /* BINARY精确大小写yy */
    select * from yoyo_product where name like BINARY '%yy%';
    
    /* 忽略大小写yy */
    select * from yoyo_product where name like '%yy%'; 
    
  • 相关阅读:
    Business Objects 基础
    常用的bw基础知识
    SAP BW传输请求操作步骤
    FI/CO 财务基础知识
    SAP财务常用数据源概览
    HANA 和 SAP NetWeaver BW
    Request.QueryString中文乱码
    完全备份类型
    SQL Server备份属于I/O密集型操作
    SQL Server 通过发布订阅 实现数据库同步
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/15528656.html
Copyright © 2011-2022 走看看