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 cookie的操作实现代码(登录)
Dec 29 PHP
用PHP提取中英文词语以及数字的首字母的方法介绍
Apr 23 PHP
鸡肋的PHP单例模式应用详解
Jun 03 PHP
zf框架的zend_cache缓存使用方法(zend框架)
Mar 14 PHP
Laravel框架学习笔记(一)环境搭建
Oct 15 PHP
php上传大文件设置方法
Apr 14 PHP
yii 2.0中表单小部件的使用方法示例
May 23 PHP
PHP中关键字interface和implements详解
Jun 14 PHP
PHP调用API接口实现天气查询功能的示例
Sep 21 PHP
php单元测试phpunit入门实例教程
Nov 17 PHP
PHP操作redis实现的分页列表,新增,删除功能封装类与用法示例
Aug 04 PHP
php设计模式之中介者模式分析【星际争霸游戏案例】
Mar 23 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获取文件绝对路径的代码(上一级目录)
2011/05/29 PHP
php使用NumberFormatter格式化货币的方法
2015/03/21 PHP
PHP信号量基本用法实例详解
2016/02/12 PHP
PHP代码重构方法漫谈
2018/04/17 PHP
PHP学习记录之数组函数
2018/06/01 PHP
laravel实现查询最后执行的一条sql语句的方法
2019/10/09 PHP
利用404错误页面实现UrlRewrite的实现代码
2008/08/20 Javascript
javascript中的关于类型转换的性能优化
2010/12/14 Javascript
javascript复制对象使用说明
2011/06/28 Javascript
Javascript的各种节点操作实例演示代码
2012/06/27 Javascript
javascript 兼容所有浏览器的DOM扩展功能
2012/08/01 Javascript
基于jquery的用鼠标画出可移动的div
2012/09/06 Javascript
jQuery渐变发光导航菜单的实例代码
2013/03/27 Javascript
在Iframe中获取父窗口中表单的值(示例代码)
2013/11/22 Javascript
基于jQuery实现表格的查看修改删除
2016/08/01 Javascript
浅谈jquery中使用canvas的问题
2016/10/10 Javascript
解决vue build打包之后首页白屏的问题
2018/03/06 Javascript
vue form 表单提交后刷新页面的方法
2018/09/04 Javascript
Vue瀑布流插件的使用示例
2018/09/19 Javascript
基于vue实现滚动条滚动到指定位置对应位置数字进行tween特效
2019/04/18 Javascript
[12:29]《一刀刀一天》之DOTA全时刻19:蝙蝠骑士田伯光再度不举
2014/06/10 DOTA
使用Python读取大文件的方法
2018/02/11 Python
Python简单获取二维数组行列数的方法示例
2018/12/21 Python
Python实现括号匹配方法详解
2020/02/10 Python
Django 解决model 反向引用中的related_name问题
2020/05/19 Python
Python使用xlrd实现读取合并单元格
2020/07/09 Python
CSS3实现淘宝留白的方法
2020/06/05 HTML / CSS
Needle & Thread官网:英国仙女品牌
2018/01/13 全球购物
美国名表在线商城:Ashford(支持中文)
2019/09/24 全球购物
CAT鞋加拿大官网:CAT Footwear加拿大
2020/08/05 全球购物
优秀中专生推荐信
2013/11/17 职场文书
新闻编辑求职信
2014/07/13 职场文书
表扬信格式模板
2015/05/05 职场文书
中学教师教学工作总结
2015/08/13 职场文书
python区块链实现简版工作量证明
2022/05/25 Python
Linux中文件的基本属性介绍
2022/06/01 Servers