博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
062:ORM查询条件详解-exact和iexact
阅读量:6208 次
发布时间:2019-06-21

本文共 926 字,大约阅读时间需要 3 分钟。

查询操作:

查找是数据库操作中一个非常重要的技术。查询一般就是使用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

你可能感兴趣的文章
我的友情链接
查看>>
虚拟化主机安装
查看>>
SumPF
查看>>
我的友情链接
查看>>
Active Directory还原工具之一ADRestore 1.1
查看>>
启用和配置Office 365多重身份验证
查看>>
穿越时空,望平板电脑未来发展
查看>>
WinXP、Win7脚本自动加域及用户资料迁移
查看>>
我的友情链接
查看>>
VIM编辑器详解
查看>>
运维自动化之使用Cobbler自动化安装系统与FAQ
查看>>
mysql错误记录1(密码不正确or忘记)
查看>>
软件公司美女多,可以明显提高纯爷们的整体的工作效率
查看>>
2012年在杭州承接的第一个软件项目经验浅谈 -- 门户网站数据库、ASP.NET程序性能改进...
查看>>
******lifenote******
查看>>
date和clock详解
查看>>
python和shell 传递变量
查看>>
DS4000更换硬盘
查看>>
php数组键值排序
查看>>
mysql优化(1)show命令 慢查询日志 explain profiling
查看>>