5ucms论坛

标题: 11 ThinkPhP5 查询语言-下 [打印本页]

作者: admin    时间: 2019-7-7 19:02
标题: 11 ThinkPhP5 查询语言-下
·获取某行某列某个值 关键词 value
$name = Db::name('data')
->where('id',16)
->value('name');
print_r($name)

·获取某列 关键词 colum 单列
$list = Db::name('data')
->where('status',1)
->column('name');
print_r($list)


·获取 id 键名name 位置的 键值对 即,多列,id为键名
$list = Db::name('data')
->where('status',1)
->column('name','id');
print_r($list)


·获取 id 键名数据集
$list = Db::name('data')
->where('status',1)
->column('*','id');
print_r($list)
·聚合查询 count max min avg sum
·统计data表的数据
$count = Db::name('data')->where('status',1)->count();
echo $count;

·统计data表内最大id
$max = Db::name('data')->where('status',1)->max('points');
echo $max;

·简易字符串,简单查询 :xxx 意思是占位符,后面需要数组表示真正的值
$result = Db::name('data')
->where(" id > :id and name like :name ",['id' => 10, 'name' => '%5ucms%'])
->select();
print_r($result);

·日期查询 建议类型用int 时间戳
·查询时间大于2019年1月1日的数据
->whereTime('reg_time','>','2019-1-1')

·查询本周
$whereTime('reg_time','>','this week')


·查询最近两天添加的数据
$whereTime('reg_time','>','-2 days')

·查询时间段之间的
->whereTime('reg_time','between','['2018-1-1','2019-1-1']')

·查询当天 today ,昨天 yesterday,本周week,上周 last week
->$whereTime('reg_time'','week')

·分块查询
Db::name('data')
->where('status','>',0)
->chunk(100,function($list){
    foreach($list as $data) { //每批次处理100条数据}
});

·改造写法
$p = 0 ;
do{
    $result = Db::name('data')->limit($p,100)->select();
    $p +=100 ; //每次增加100
    print_r($result);
}while (count($result)>0)





欢迎光临 5ucms论坛 (http://bbs.5ucms.com/) Powered by Discuz! X3.2