thinkphp3.2框架中where条件查询用法总结


Posted in PHP onAugust 13, 2019

本文实例讲述了thinkphp3.2框架中where条件查询用法。分享给大家供大家参考,具体如下:

thinkphp3.2 where 条件查询

在连贯操作中条件where的操作有时候自己很晕,所以整理下,有助于使用

查询条件

支持的表达式查询,tp不区分大小写

含义 TP运算符 SQL运算符 例子 实际查询条件
等于 EQ = $where['id'] = array('EQ','1') id = 2
不等于 NEQ != $where['id'] = array('NEQ','1') id!=2
大于 GT > $where['id'] = array('GT','1') id >1
大于等于 EGT EGT $where['id'] = array('EGT','1') id>=1
小于 $where['id'] = array('lt',1) id
小于等于 $where['id'] = array('elt',1) id
匹配 like like where[′id′]=array(′like′,′where[′id′]=array(′like′,′where['id'] = array('like','begin%') $where['id'] = array('like','%begin%') where id like '%begin' where id like 'begin%' where id like'%begin%
在范围内包括俩端值 between 0 $where['id'] = array('between',array('0','10')) where id between 0 and 10
不在范围内 not between 0 >id and 1o $where['id'] = array('not between',array('0','10')) where id not between 0 and 10
在枚举的值中 in in $where['id'] = array('in',array('1','2','5')) where id in ('1','2','3')
不在枚举值中 not in not in $where['id'] = array('not in',array('1','2',5)) where id not in ('1','2','5')
exp 表达式查询,支持SQL语法

exp 是表达式的意思,如果你觉得对于一个值限制条件太多的话就可以用这个

$where['id'] = array('exp','in ( select id from id from tableb)');

复查的查询语句

有的时候,我们希望通过一次的查询就能解决问题,这个时候查询条件往往比较复杂,但是却比多次查询库来的高效。

实在是搞不定的话就直接用$where['_string'] = 'xxxx', 这个代表查询的时候拼接上 xxx 条件,一次性解决问题

$where['_string'] = 'left join A on A.id = b.id where a.id not in (select id from C)';

1. 区间查询(一个值得多种情况)

默认是 and

$where['id'] =array(array('neq','8'),array('elt','200'),'and'); // 小于等于200 不等于 8
$where['id'] = array(array('neq','8'),'array('neq','10')','or'); // 不等于8或者不等于10

2. 复合查询

相当于封装了新的查询条件在里面

$where['a'] = 5;
$where['b'] = 6;
$where['_logic'] = 'or';

sql:where a = 5 or b = 6;

$condition['c'] = '3';
$condition['d'] = '4'
$condition['_logic'] = 'or'
$where['a'] = 9;
$where['_complex'] = $condition;

sql: where a=9 and (c = 3 or d = 4)

根据需求,灵活使用(无限套下去)

3. sql 查询

如果有设置了读写分离的话 query 是查询 execute是更新保存

M()->query('select * from a');
M()->execute('update a set counts = 3 where id = 1103')

4. 获取要执行的sql 语句

有的时候条件太复杂,比如 id in(xxxxx),这个xxx就是通过一系列操作获得的结果,嫌麻烦的就直接 都扔进去,写sql 又长,就直接获取sql语句扔进去

1.fetchsql
2.buildsql
3.select(false)

M('user')->fetchsql(true)->select();
M('user')->buildsql();
M('user')->select(false);

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
海河写的 Discuz论坛帖子调用js的php代码
Aug 23 PHP
php htmlspecialchars加强版
Feb 16 PHP
让的PHP代码飞起来的40条小技巧(提升php效率)
Apr 12 PHP
javascript,php获取函数参数对象的代码
Feb 03 PHP
phpnow php探针环境检测代码
Nov 04 PHP
php+xml编程之xpath的应用实例
Jan 24 PHP
PHP递归遍历多维数组实现无限分类的方法
May 06 PHP
Yii配置与使用memcached缓存的方法
Jul 13 PHP
PHP 等比例缩放图片详解及实例代码
Sep 18 PHP
PHP编程计算两个时间段是否有交集的实现方法(不算边界重叠)
May 30 PHP
实例讲解YII2中多表关联的使用方法
Jul 21 PHP
Laravel框架路由和控制器的绑定操作方法
Jun 12 PHP
thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
Aug 13 #PHP
php实现的表单验证类完整示例
Aug 13 #PHP
thinkphp3.2同时连接两个数据库的简单方法
Aug 13 #PHP
php实现简单的守护进程创建、开启与关闭操作
Aug 13 #PHP
Laravel如何同时连接多个数据库详解
Aug 13 #PHP
Laravel 默认邮箱登录改成用户名登录的实现方法
Aug 12 #PHP
php链式操作的实现方式分析
Aug 12 #PHP
You might like
PHP COOKIE设置为浏览器进程
2009/06/21 PHP
解决PHP使用CURL发送GET请求时传递参数的问题
2019/10/11 PHP
模拟用户操作Input元素,不会触发相应事件
2007/05/11 Javascript
js 解决“options为空或不是对象”
2008/12/22 Javascript
jQuery结合Json提交数据到Webservice,并接收从Webservice返回的Json数据
2011/02/18 Javascript
js字符串的各种格式的转换 ToString,Format
2011/08/08 Javascript
javascript 全选与全取消功能的实现代码
2012/12/23 Javascript
jquery ajax提交整个表单元素的快捷办法
2013/03/27 Javascript
可选择和输入的下拉列表框示例
2013/11/05 Javascript
iframe父页面获取子页面参数的方法
2014/02/21 Javascript
javascript的事件触发器介绍的实现
2014/06/05 Javascript
sogou地图API用法实例教程
2014/09/11 Javascript
Javascript代码实现仿实例化类
2015/04/03 Javascript
AngularJS 如何在控制台进行错误调试
2016/06/07 Javascript
Bootstrap表单布局样式源代码
2016/07/04 Javascript
Vue中的v-cloak使用解读
2017/03/27 Javascript
详解如何使用Node.js编写命令工具——以vue-cli为例
2017/06/29 Javascript
javaScript实现滚动条事件详解
2020/03/24 Javascript
jQuery中each方法的使用详解
2018/03/18 jQuery
Vue中的异步组件函数实现代码
2018/07/20 Javascript
微信小程序后台持续定位功能使用详解
2019/08/23 Javascript
js实现简单选项卡制作
2020/08/05 Javascript
vue 项目中当访问路由不存在的时候默认访问404页面操作
2020/08/31 Javascript
[01:24]DOTA2上海特锦赛OG战队抵达 专车接机入驻总统套房
2016/02/23 DOTA
python实现批量下载新浪博客的方法
2015/06/15 Python
Python中的异常处理相关语句基础学习笔记
2016/07/11 Python
Python OpenCV对本地视频文件进行分帧保存的实例
2019/01/08 Python
Python3 虚拟开发环境搭建过程(图文详解)
2020/01/06 Python
Python日志:自定义输出字段 json格式输出方式
2020/04/27 Python
Pandas中DataFrame交换列顺序的方法实现
2020/12/14 Python
Java TransactionAPI (JTA) 主要包含几部分
2012/12/07 面试题
初中校园之声广播稿
2014/01/15 职场文书
房屋租赁授权委托书范本
2014/09/20 职场文书
证婚人致辞精选
2015/07/28 职场文书
Nginx解决403 forbidden的完整步骤
2021/04/01 Servers
MySQL数据库⾼可⽤HA实现小结
2022/01/22 MySQL