thinkPHP的条件查询、动态查询和聚合函数

条件查询

having 和 where 的区别

区别一:

where后面跟的字段必须在数据表中有

having后面跟的字段必须在查询出的数据集中有

区别二:

where * from 表 where 条件 group by 分组


1、按主键查询

$list = M('goods')->select(2);

返回一条主键值为2的数据

 

2、查询编号是2-6的记录

$list = M('goods')->select("2,3,4,5,6");

返回5条记录

 

3、where条件查询

(1)$list = M('goods')->where("goods_name like '%诺基亚%'")->select();

(2)$list = M('goods')->where("goods_name like '%诺基亚%' and goods_price >= 1000")->select(); 

 

4、limit

$list = M('goods')->limit(2,5)->select();

2~5条的数据

 

5、where limit

$list = M('goods')->where('goods_price > 1000')->limit(3)->select();

3条大于1000的数据

 

6排序

递减排序

$list = M('goods')->order('goods_price desc')->select();

递增排序

$list = M('goods')->order('goods_price asc')->select();

 

7、查询制定字段

$list = M('goods')->field('goods_name,goods_price')->select();

只查询出goods_namegoods_price两个字段

 

8、分组查询

$list = M('goods')->group('goods_brand_id')->field('goods_brand_id, max(goods_price) m')->having('m>2000')->select();



动态查询

getby + 字段名

$data = M('goods')->getBygoods_brand_id(9);
goods_brand_id 是字段名


聚合函数

$goods = M('goods');
echo '总共多少条记录:' . $goods->count() . '
'; echo '最大钱数是:' . $goods->max('goods_price') . '
'; echo '最小钱数是:' . $goods->min('goods_price') . '
'; echo '平均值为:' . $goods->avg('goods_price') . '
'; echo '总价钱:' . $goods->sum('goods_price') . '
';

 

结果:

总共多少条记录:55
最大钱数是:6700.00
最小钱数是:18.00
平均值为:2089.133273
总价钱:114902.33


你可能感兴趣的:(php-ThinkPHP)