062:ORM查询条件详解-exact和iexact

查询操作:

查找是数据库操作中一个非常重要的技术。查询一般就是使用filter、exclude以及get三个方法来实现。我们可以在调用这些方法的时候传递不同的参数来实现查询需求。在 ORM 层面,这些查询条件都是使用 field + __ + condition 的方式来使用的。以下将那些常用的查询条件来一一解释。

查询条件exact和iexact:

exact:

使用精确的 = 进行查找。如果提供的是一个 None ,那么在 SQL 层面就是被解释为 NULL 。示例
代码如下:

article = Article.objects.get(id__exact=14)       #等价与: article = Article.objects.get(id=14)
article = Article.objects.get(id__exact=None)

以上的两个查找在翻译为 SQL 语句为如下:

select ... from article where id=14;
select ... from article where id IS NULL;

iexact:

使用 like 进行查找。示例代码如下:

article = Article.objects.filter(title__iexact=‘hello world‘)

那么以上的查询就等价于以下的 SQL 语句:

select ... from article where title like ‘hello world‘;

注意:上面这个sql语句,因为在MySQL中,没有一个叫做ilike的,所以iexact和exact的区别实际上就是LIKE和=的区别,而且,field__exact=***其实就是“field=***”,在大部分collation=utf8_general_ci 情况下都是一样的( collation 是用来对字符串比较的)。因此,实际开发中使用exact和iexact很少,直接使用:field=*** 即可。

实例截图如下:

原文地址:https://www.cnblogs.com/zheng-weimin/p/10229185.html

时间: 2024-11-06 07:31:23

062:ORM查询条件详解-exact和iexact的相关文章

065:ORM查询条件详解-gt、gte、lt和lte

ORM查询条件详解-gt.gte.lt和lte: 1.gt:某个 field 的值要大于给定的值.示例代码如下: articles = Article.objects.filter(id__gt=3) 以上代码的意思是将所有 id 大于4的文章全部都找出来.将翻译成以下 SQL 语句: SELECT `article`.`id`, `article`.`title`, `article`.`content`, `article`.`category_id` FROM `article` WHER

060~061:ORM查询条件详解-准备工作(pycharm连接数据库)

准备工作,啥也不说了,直接上图说明: 1.每次创建APP和迁移数据库都要打开cmd窗口,有点麻烦:如下界面窗口可以直接使用: 2.pycharm连接MySQL数据库(其中遇到驱动问题:百度一下): 备注:直接打开数据库的表,如果要保存,使用如下按键:crtl + enter 原文地址:https://www.cnblogs.com/zheng-weimin/p/10228992.html

django orm查询方法详解

目录 1.1.1 生成查询 1.1.2 创建对象 1.1.3 保存修改的对象 1.1.4 保存 ForeignKey 和 ManyToManyField 字段 1.1.5 检索对象 1.1.6 检索所有的对象 1.1.7 过滤检索特定对象 1.1.8 链接过滤 1.1.9 过滤结果集是唯一 1.2.1 结果集是延迟的 1.2.2 其他的QuerySet方法 1.2.3 限制 QuerySets 1.2.4 字段查找 1.2.5 跨关系查询 1.2.6 过滤器可参考模型字段 1.2.7 缓存查询集

hibernate(七) hibernate中查询方式详解

序言 之前对hibernate中的查询总是搞混淆,不明白里面具体有哪些东西.就是因为缺少总结.在看这篇文章之前,你应该知道的是数据库的一些查询操作,多表查询等,如果不明白,可以先去看一下 MySQL数据表查询操作详解  ,以至于看这篇文章不用那么吃力. --WH 一.hibernate中的5种检索方式 1.1.导航对象图检索方式 根据已经加载的对象导航到其他对象 例如:在前面的各种映射关系中,实体类包含对其他类对象的引用. Dept d = (Dept) session.get(Dept.cla

MongoDB各种查询操作详解

这篇文章主要介绍了MongoDB各种查询操作详解,包括比较查询.关联查询.数组查询等,需要的朋友可以参考下 一.find操作 MongoDB中使用find来进行查询,通过指定find的第一个参数可以实现全部和部分查询. 1.查询全部 空的查询文档{}会匹配集合的全部内容.如果不指定查询文档,默认就是{}. 2.部分查询 3.键的筛选 键的筛选是查询时只返回自己感兴趣的键值,通过指定find的第二个参数来实现.这样可以节省传输的数据量,又能节省客户端解码文档的时间和内存消耗. 查询时,数据库所关心

【Solr】索引库查询界面详解

目录 索引库查询界面详解 回到顶部 索引库查询界面详解 q:主查询条件.完全支持lucene语法.还进行了扩展. fq:过滤查询.是在主查询条件查询结果的基础上进行过滤.例如:product_price:[10 TO 20] sort:排序条件.排序的域asc.如果有多个排序条件使用半角逗号分隔. start, rows:分页处理.Start起始记录rows每页显示的记录条数. fl:返回结果中域的列表.使用半角逗号分隔. df:默认搜索域. wt:响应结果的数据格式,可以是json.xml等.

075: 【Django数据库】ORM聚合函数详解-Sum

ORM聚合函数详解-Sum: Sum :求指定对象的总和.比如要求图书的销售总额.那么可以使用以下代码实现: from djang.db.models import Sum result = Book.objects.annotate(total=Sum("bookstore__price")).values("name","total") 以上的代码 annotate 的意思是给 Book 表在查询的时候添加一个字段叫做 total ,这个字段

FluentData 轻量级.NET ORM持久化技术详解

FluentData 轻量级.NET ORM持久化技术详解(C#4.5/Linq/Lambda,事务/储存过程,开源框架) 课程讲师:风舞烟 课程分类:.NET框架 适合人群:初级 课时数量:19课时 用到技术:FluentData 涉及项目:FluentData轻量级 咨询qq:1840215592 本课程系<基于ASP.NET MVC 4 +Knockout.JS+Web API+FluentData+EasyUI 技术实现Web通用商业开发框架>中的一个单品课程,北风产品总监"

070:【Django数据库】ORM聚合函数详解-准备工作

ORM聚合函数详解-准备工作: 如果你用原生SQL,则可以使用聚合函数来提取数据.比如提取某个商品销售的数量,那么可以使用count,如果想要知道商品销售的平均价格,那么可以使用avg.聚合函数是通过aggregate方法来实现的.在讲解这些聚合函数的用法的时候,都是基于以下的模型对象来实现的. 创建如下models: from django.db import models class Author(models.Model): """作者模型""&qu