Thinkphp 数据操作指南-查询技巧

原创 2012年03月22日 14:04:28

字段别名

可以在查询的字段里面使用别名,例如

以MySQL为例,我们可以使用

$User->where(’status=1′)

->field(’id,email,username as `name`’)

->limit(10)

->findAll();

可以生成下面的SQL语句

Select id,email,username as `name` from think_user limit 10 where 1

注意在mysql下面一定在自己添加`符 号,否则会自动添加`符号导致不正常。

使用JOIN

假如有二个表,第一个表为Comment表,第二个表为Reply表,现在做一个左连接,MYSQL上测试语句为:
select a.*,b.* from comment a left join reply b on a.id=b.cid
那么可以使用下面的方式来写查询

$Blog->table(’comment a’)

->join(’reply b on a.id=b.cid’)

->field(’a.*,b.*’)

->order(’id desc’)

->limit(’8′)

->findall();

$Blog->table(’comment a’)

->join(’reply b on a.id=b.cid’)

->field(’a.id,a.name,a.subject,b.category’)

->order(’id desc’)

->limit(’8′)

->findall();

如果有更多的JOIN表,还可以支持通过数组参数传入join方式

$Model->table(’table a’)

->join(array(’table1 b on b.id=a.cid’,'table2 c on c.id=b.uid’))

->findall();

或者使用连贯操作中的多个join方法

$Model->table(’table a’)

->join(’table1 b on b.id=a.cid’)

->join(’table2 c on c.id=b.uid’)

->findall();

需要注意的是数组的方法和原来的方式有差别,原来的数组第一个元素是JOIN的类型,现在类型统一放到字符串表达式里面了。如果没有指定JOIN类 型默认仍然是LEFT JOIN 如果需要使用其他的JOIN方式,可以使用下面的方式

$Model->table(’table a’)

->join(’table1 b on b.id=a.cid’)

->join(’right join table2 c on c.id=b.uid’)

->findall();


ThinkPHP数据操作指南

  • 2009年04月26日 22:33
  • 122KB
  • 下载

ThinkPHP数据操作指南

  • 2009年07月11日 10:05
  • 676KB
  • 下载

thinkPHP常用数据操作(二)查询语言

上一节讲了使用 activerecord(AR)模式操作数据,但是面对复杂的业务逻辑时,AR模式很难应对,因此本节tp提供更加灵活的查询方式。 1 使用字符串作为查询条件(安全性不高) $User...

ThinkPHP开发指南-模型之连贯操作

ThinkPHP2.0版本全面启用模型类的连贯操作方法,可以有效的提高数据存取的代码清晰度和开发效率。使用方面也比较简单, 假如我们现在要查询一个User表的满足状态为1的前10条记录,并希望按照用户...

thinkphp5 之数据操作和模板输出

$result=Db::table('ims_ewei_shop_ceshib')->select(); $this->assign('mylist',$result); ...

用python简单实现类似thinkphp的针对Mysql操作的数据模型

摘自以前CI实现的商城系统,做APP时需要实现数据接口,便用python实现了。 假设有表tp_article id title type 1 哈哈 1 ...

ThinkPHP 增删查改操作及视图中数据接收与处理

在这里我把$obj定义为model对象,适用于下面任何一个例子 ①数据查询 调用方法:$obj->select() 或 $obj->find($id) -->调用区别:select()获取二维数组,f...

让ThinkPHP3.2.3 支持对Oracle LOB数据的操作

让ThinkPHP3.2.3 支持对Oracle LOB数据的操作1. 问题由来PHP2. 配置PHP:OCI8首先,原理是利用PHP OCI8的拓展函数库。所以,必须先把OCI8,和php_oc...

Thinkphp数据的修改及删除操作

一、数据修改操作 save()  实现数据修改,返回受影响的记录条数 具体有两种方式实现数据修改,与添加类似(数组、AR方式) 1.数组方式: a)         $good...

ThinkPHP之数据模型操作

首先要明确模型要通过控制器来调用,数据库中每一张数据表都对应一个model模型文件。连接数据库配置 进行数据库的配置: 一般数据库里表的命名都有一定的规律,一般都有表前缀,我们可以在配置中声明表前缀,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Thinkphp 数据操作指南-查询技巧
举报原因:
原因补充:

(最多只允许输入30个字)