码迷,mamicode.com
首页 > 数据库 > 详细

SQL 连贯操作 [1]

时间:2015-05-04 19:42:44      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:

一. 连贯入门

查找到 id 为 1,2,3,4 中按照创建时间的倒序的前两位。

在 Home/controller/UserController.class.php 下插入

      1、连贯操作入门

$user = M(‘User‘);
var_dump($user->where(‘id in (1,2,3,4)‘)->order(‘date DESC‘)->limit(2)->select());

得到的SQL查询语句为

技术分享

PS:这里的 where、order 和 limit 方法都是连贯操作方法,所以它们都能返回$user本身,
可以互换位置。而 select 方法不是连贯方法,需要放在最后,用以显示数据集。

 

    2、数组操作

$user = M(‘User‘);
var_dump($user->select( array(‘where‘=>‘id in (1,2,3,4)‘, ‘limit‘=>‘2‘,‘order‘=>‘date DESC‘)));

或者是

$user = M(‘User‘);
var_dump($user->select(array(‘where‘=>array(‘id‘=>array(‘neq‘,‘1‘)),‘order‘=>‘date DESC‘,‘limit‘=>‘2‘)));    

 

二. 连贯方法

1.where
where 方法支持字符串条件、数组条件(推荐用法)和多次调用

//字符串方式
$user = M(‘User‘);
var_dump($user->where(‘id=1‘)->select());

//索引数组方式
$user = M(‘User‘);
$map[‘id‘] = 1; 
var_dump($user->where($map)->select());

$user = M(‘User‘);
$map[‘id‘] =  array(‘eq‘, 1);
var_dump($user->where($map)->where(‘user="蜡笔小新"‘)->select());

 

2.order
order 用于对结果集排序。

//倒序
$user = M(‘User‘);
$map[‘id‘] =  array(‘eq‘, 1);
var_dump($user->order(‘id desc‘)->select()); //正序默认或 ASC

//第二排序
var_dump($user->order(‘id desc,email desc‘)->select());
PS:先按 id 倒序,再按 email 倒序

这个用法在这个数据库里是没有什么意义的,但是如果是在比较成绩的时候就可以使用了,比如将id换成语文成绩,email换成数学成绩,

当语文成绩是一样的时候,那这时候就比较数学成绩了,这时候才用到两个排序的功能。

 

//数组形式防止字段和mysql关键字冲突
$user = M(‘User‘);
$map[‘id‘] =  array(‘eq‘, 1);
var_dump($user->order( array(‘id‘=>‘DESC‘))->select());

使用数组的形式就是能够在SQL查询的时候在user等字段上加上``符号,更安全。

 

3.feild
feild 方法可以返回或操作字段,可以用于查询和写入操作。

只显示id和user两个字段
$user = M(‘User‘);
var_dump($user->field(‘id, user‘)->select());

使用SQL函数和别名

$user = M(‘User‘);
var_dump($user->field(‘SUM(id) as nihao, user‘)->select());

其中 ‘SUM(id) as nihao 中的nihao为设置的别名,在浏览器中显示为

技术分享

使用数组参数结合SQL函数

$user = M(‘User‘);
var_dump($user->field( array(‘id‘,‘LEFT(user,3)‘=>‘left_user‘))->select());

这时只显示user中数据的前三个字

技术分享

并且其中的 left_user 也是设置的别名,在SQL查询语句中为:

技术分享

获取所有字段

$user = M(‘User‘);
var_dump($user->field()->select()); 

 

SQL 连贯操作 [1]

标签:

原文地址:http://www.cnblogs.com/jacson/p/4476818.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!