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 相关文章推荐
用PHP 4.2书写安全的脚本
Oct 09 PHP
PHP date函数参数详解
Nov 27 PHP
PHP 上传文件大小限制
Jul 05 PHP
php安全配置 如何配置使其更安全
Dec 16 PHP
PHP curl 获取响应的状态码的方法
Jan 13 PHP
Linux下php5.4启动脚本
Aug 03 PHP
php中使用array_filter()函数过滤空数组的实现代码
Aug 19 PHP
CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法
Jun 17 PHP
PHP文件操作实例总结
Sep 27 PHP
php 二维数组快速排序算法的实现代码
Oct 17 PHP
PHP递归实现快速排序的方法示例
Dec 18 PHP
PHP join()函数用法与实例讲解
Mar 11 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 什么是PEAR?(第三篇)
2009/03/19 PHP
php使用CURL模拟GET与POST向微信接口提交及获取数据的方法
2016/09/23 PHP
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
jquery 选择器部分整理
2009/10/28 Javascript
Javascript核心读书有感之表达式和运算符
2015/02/11 Javascript
AngularJS基础知识笔记之表格
2015/05/10 Javascript
基于JS实现移动端访问PC端页面时跳转到对应的移动端网页
2020/12/24 Javascript
laypage分页控件使用实例详解
2016/05/19 Javascript
JavaScript动态添加事件之事件委托
2016/07/12 Javascript
JavaScript表单验证的两种实现方法
2017/02/11 Javascript
jQuery实现动态添加节点与遍历节点功能示例
2017/11/09 jQuery
详解React开发必不可少的eslint配置
2018/02/05 Javascript
使用vue for时为什么要key【推荐】
2019/07/11 Javascript
vue选项卡切换登录方式小案例
2019/09/27 Javascript
nodeJS与MySQL实现分页数据以及倒序数据
2020/06/05 NodeJs
[56:20]LGD vs VP Supermajor 败者组决赛 BO3 第三场 6.10
2018/07/04 DOTA
python实现从一组颜色中找出与给定颜色最接近颜色的方法
2015/03/19 Python
Flask框架的学习指南之制作简单blog系统
2016/11/20 Python
Python中扩展包的安装方法详解
2017/06/14 Python
机器学习的框架偏向于Python的13个原因
2017/12/07 Python
Python 类的魔法属性用法实例分析
2019/11/21 Python
python实现高斯判别分析算法的例子
2019/12/09 Python
Pytorch技巧:DataLoader的collate_fn参数使用详解
2020/01/08 Python
Python使用windows设置定时执行脚本
2020/11/12 Python
Html5百叶窗效果的示例代码
2017/12/11 HTML / CSS
详解快速开发基于 HTML5 网络拓扑图应用
2018/01/08 HTML / CSS
Hotels.com越南:酒店预订
2019/10/29 全球购物
TCP协议通讯的过程和步骤是什么
2015/10/18 面试题
清洁工表扬信
2014/01/08 职场文书
大学生就业求职信
2014/06/12 职场文书
2014年扶贫帮困工作总结
2014/12/09 职场文书
求职自我推荐信
2015/03/24 职场文书
建筑工地资料员岗位职责
2015/04/13 职场文书
从严治党主题教育活动总结
2015/05/07 职场文书
本科毕业答辩开场白
2015/05/27 职场文书
python3读取文件指定行的三种方法
2021/05/24 Python