5ucms论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 6558|回复: 0
打印 上一主题 下一主题

[TP5学习] 11 ThinkPhP5 查询语言-下

[复制链接]

670

主题

785

帖子

8238

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8238
跳转到指定楼层
楼主
发表于 2019-7-7 19:02:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
·获取某行某列某个值 关键词 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)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|5ucms.com

GMT+8, 2024-4-26 20:01 , Processed in 0.062500 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表