thinkphp3.2 where 条件查询

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

查询条件

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

含义 TP运算符 SQL运算符 例子 实际查询条件
等于 EQ = $where['id'] = 2
($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 < 1
小于等于 <= <= $where['id'] = array('elt',1) id<=1
匹配 like like $where['id'] = array('like','%begin')
$where['id'] = array('like','begin%')
$where['id'] = array('like','%begin%')
where id like '%begin'
where id like 'begin%'
where id like'%begin%'
在范围内包括俩端值 between 0<=id<=10 $where['id'] = array('between',array('0','10')) where id between 0 and 10
不在范围内 not between 0 >id and 1o < id $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
  1. 复合查询

    相当于封装了新的查询条件在里面
$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);

thinkphp3.2 where 条件查询的更多相关文章

  1. thinkphp3.2 where 条件查询 复查的查询语句

    复查的查询语句 有的时候,我们希望通过一次的查询就能解决问题,这个时候查询条件往往比较复杂,但是却比多次查询库来的高效. 实在是搞不定的话就直接用$where[‘_string’] = ‘xxxx’, ...

  2. thinkphp分页+条件查询

    最近项目上面有一个带条件查询的分页列表,一开始form用的post,点击第二页就没有跳转成功,原因是分页是get请求,post数据链接到其他页面就会被清除. 解决办法: 1.form表单method= ...

  3. jqGrid jqGrid分页参数+条件查询

    HTML <div class="row"> <div class="col-sm-20"> <form id="for ...

  4. Rafy 中的 Linq 查询支持(根据聚合子条件查询聚合父)

    为了提高开发者的易用性,Rafy 领域实体框架在很早开始就已经支持使用 Linq 语法来查询实体了.但是只支持了一些简单的.常用的条件查询,支持的力度很有限.特别是遇到对聚合对象的查询时,就不能再使用 ...

  5. Oracle学习总结_day03_day04_条件查询_排序_函数_子查询

    本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! day03_条件查询_排序_函数 清空回收站: PUR ...

  6. [NHibernate]条件查询Criteria Query

    目录 写在前面 文档与系列文章 条件查询 一个例子 总结 写在前面 上篇文章介绍了HQL查询,我个人觉得使用ORM框架就是为了让少些sql,提高开发效率,而再使用HQL就好像还是使用sql,就觉得有点 ...

  7. PHP-----练习-------租房子-----增删改查,多条件查询

    练习-------租房子-----增删改查,多条件 一 .题目要求: 二 .做法: [1]建立数据库 [2]封装类文件------DBDA.class.php <?php class DBDA ...

  8. 【Java EE 学习 17 下】【数据库导出到Excel】【多条件查询方法】

    一.导出到Excel 1.使用DatabaseMetaData分析数据库的数据结构和相关信息. (1)测试得到所有数据库名: private static DataSource ds=DataSour ...

  9. SpringMVC整合Hibernate实现增删改查之按条件查询

    首先我贴出我项目的结构,只完成了条件查询的相关代码,增删改没有写. 1.新建一个动态Web工程,导入相应jar包,编写web.xml配置文件 <context-param> <par ...

随机推荐

  1. Cypress系列(2)- Cypress 框架的详细介绍

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html Cypress 简介 基于 JavaSc ...

  2. Android_存储访问框架SAF

    概念 存储访问框架---Storage Access Framework (SAF),这是在Android4.4(API level 19)之后引入的. 借助 SAF,用户可轻松在其所有首选文档存储提 ...

  3. MVC案例之新增与修改Customer

    新增Customer 添加的流程Add New Customer 超链接连接到 newcustomer.jsp新建 newcustomer.jsp: 在 CustomerServlet 的 addCu ...

  4. Python实现批量MD5加密

    #!/usr/bin/python # -*- coding: utf-8 -*- import hashlib def md5(str): hl = hashlib.md5() hl.update( ...

  5. RocketMQ系列(一)基本概念

    RocketMQ是阿里出品的一款开源的消息中间件,让其声名大噪的就是它的事务消息的功能.在企业中,消息中间件选择使用RocketMQ的还是挺多的,这一系列的文章都是针对RocketMQ的,咱们先从Ro ...

  6. C# winform 学习(一)

    目标 1.类和对象 2.定义类 3.对象的操作 4.命名空间 一.类和对象 1.理解 1)类:具有共同特征和行为的一类事物的统称 2)对象:类的一个具体唯一的实例 eg: 1路公交车;(类) 车牌为F ...

  7. Java实现k个数乘(cheng)(自然数的k乘积问题)

    k个数乘(cheng) 题目描述 桐桐想把一个自然数N分解成K个大于l的自然数相乘的形式,要求这K个数按从小到大排列,而且除了第K个数之外,前面(K-l)个数是N分解出来的最小自然数.例如:N=24, ...

  8. Java实现 洛谷 P1170 兔八哥与猎人

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...

  9. java实现圆周率

    我国古代数学家对圆周率方面的研究工作,成绩是突出的.三国时期的刘徽.南北朝时期的祖冲之都在这个领域取 得过辉煌战绩. 有了计算机,圆周率的计算变得十分容易了.如今,人们创造了上百种方法求π的值.其中比 ...

  10. 彻底解决go get golang.org/x等包失败与VSCode golang插件安装失败问题

    由于某种众所周知的一些原因,https://golang.org/ golang 的官方域名是被墙了的,这也就导致了, 在广大 go 开发者使用 golang 的时候,总会出现 go get 失败的问 ...