前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >区间/组合/复合/sql查询

区间/组合/复合/sql查询

作者头像
PM吃瓜
发布2019-08-12 14:36:29
1.1K0
发布2019-08-12 14:36:29
举报
文章被收录于专栏:PM吃瓜(公众号)

ThinkPHP支持对某个字段的区间查询

$map['id'] = array(array('gt',3),array('lt',10), 'or') ;得到的查询条件是: ( id > 3) OR ( id < 10)

$map['id'] = array(array('neq',6),array('gt',3),'and');得到的查询条件是:( id != 6) AND ( id > 3)

最后一个可以是AND、 OR或者 XOR运算符,如果不写,默认是AND运算。

组合查询的主体还是采用数组方式查询,只是加入了一些特殊的查询支持,包括字符串模式查询(_string)、复合查询(_complex)、请求字符串查询(_query)

数组条件可以和字符串条件(采用_string 作为查询条件)混合使用

$User = M("User"); // 实例化User对象

$map['id'] = array('neq',1);

$map['name'] = 'ok';

$map['_string'] = 'status=1 AND score>10';

$User->where($map)->select();

最后得到的查询条件就成了:

( `id` != 1 ) AND ( `name` = 'ok' ) AND ( status=1 AND score>10 )

请求字符串查询是一种类似于URL传参的方式,可以支持简单的条件相等判断。

  1. $map['id'] = array('gt','100');
  2. $map['_query'] = 'status=1&score=100&_logic=or';

得到的查询条件是

  1. `id`>100 AND (`status` = '1' OR `score` = '100')

复合查询相当于封装了一个新的查询条件,然后并入原来的查询条件之中,所以可以完成比较复杂的查询条件组装。

  1. $where['name'] = array('like', '%thinkphp%');
  2. $where['title'] = array('like','%thinkphp%');
  3. $where['_logic'] = 'or';
  4. $map['_complex'] = $where;
  5. $map['id'] = array('gt',1);

得到的查询条件是

( id > 1) AND ( ( name like '%thinkphp%') OR ( title like '%thinkphp%') )

复合查询使用了_complex作为子查询条件来定义,配合之前的查询方式,可以非常灵活的制定更加复杂的查询条件。

SQL查询

ThinkPHP内置的ORM,实现了方便的数据存取操作,而且新版增加的连贯操作功能更是让这个数据操作更加清晰,但是ThinkPHP仍然保留了原生的SQL查询和执行操作支持,为了满足复杂查询的需要和一些特殊的数据操作,SQL查询的返回值因为是直接返回的Db类的查询结果,没有做任何的处理。

1 query方法用于执行SQL查询操作,如果数据非法或者查询错误则返回false,否则返回查询结果数据集

$Model = new Model() // 实例化一个model对象 没有对应任何数据表

$Model->query("select * from think_user where status=1");

2 execute用于更新和写入数据的sql操作,如果数据非法或者查询错误则返回false ,否则返回影响的记录数。

$Model = new Model() // 实例化一个model对象 没有对应任何数据表

$Model->execute("update think_user set name='thinkPHP' where status=1");

统计查询

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-04-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Tech爬虫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档