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 相关文章推荐
解决phpmyadmin 乱码,支持gb2312和utf-8
Nov 20 PHP
Zend Studio去除编辑器的语法警告设置方法
Oct 24 PHP
解析用PHP读写音频文件信息的详解(支持WMA和MP3)
May 10 PHP
PHP register_shutdown_function函数的深入解析
Jun 03 PHP
如何设置mysql允许外网访问
Jun 04 PHP
分享一个超好用的php header下载函数
Jan 31 PHP
smarty模板中拼接字符串的方法
Feb 14 PHP
php中adodbzip类实例
Dec 08 PHP
SESSION存放在数据库用法实例
Aug 08 PHP
joomla数据库操作示例代码
Jan 06 PHP
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
Jul 21 PHP
PHP自定义函数判断是否为Get、Post及Ajax提交的方法
Jul 27 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
ThinkPHP的截取字符串函数无法显示省略号的解决方法
2014/06/25 PHP
从零开始学YII2框架(三)扩展插件yii2-gird
2014/08/20 PHP
php-beanstalkd消息队列类实例分享
2017/07/19 PHP
php实现银联商务公众号+服务窗支付的示例代码
2019/10/12 PHP
页面按钮禁用与解除禁用的方法
2014/02/19 Javascript
javascript中不提供sleep功能如何实现这个功能
2014/05/27 Javascript
浅析Node.js中使用依赖注入的相关问题及解决方法
2015/06/24 Javascript
angular.bind使用心得
2015/10/26 Javascript
Node.js实用代码段之正确拼接Buffer
2016/03/17 Javascript
轻松掌握JavaScript享元模式
2016/08/27 Javascript
简单谈谈Vue 模板各类数据绑定
2016/09/25 Javascript
利用Js的console对象,在控制台打印调式信息测试Js的实现
2016/11/26 Javascript
JS 在数组指定位置插入/删除数据的方法
2017/01/12 Javascript
通过vue手动封装on、emit、off的代码详解
2019/05/29 Javascript
Angular6使用forRoot() 注册单一实例服务问题
2019/08/27 Javascript
es6数组之扩展运算符操作实例分析
2020/04/25 Javascript
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
2020/07/28 Javascript
[01:29:31]VP VS VG Supermajor小组赛胜者组第二轮 BO3第一场 6.2
2018/06/03 DOTA
python算法演练_One Rule 算法(详解)
2017/05/17 Python
python九九乘法表的实例
2017/09/26 Python
python使用logging模块发送邮件代码示例
2018/01/18 Python
python3解析库pyquery的深入讲解
2018/06/26 Python
如何关掉pycharm中的python console(图解)
2019/10/31 Python
Python基础之函数原理与应用实例详解
2020/01/03 Python
python如何将图片转换素描画
2020/09/08 Python
html5通过postMessage进行跨域通信的方法
2017/12/04 HTML / CSS
HTML5 层的叠加的实现
2020/07/07 HTML / CSS
施华洛世奇巴西官网:SWAROVSKI巴西
2019/12/03 全球购物
人民教师的自我评价分享
2014/02/21 职场文书
道路交通安全实施方案
2014/03/12 职场文书
高级工程师英文求职信
2014/03/19 职场文书
校园游戏活动新闻稿
2014/10/15 职场文书
依法行政工作汇报材料
2014/10/28 职场文书
幼儿园老师工作总结2015
2015/05/22 职场文书
小学语文教师研修日志
2015/11/13 职场文书
幼儿园师德师风心得体会
2016/01/12 职场文书