thinkphp数据库查询

本文介绍了ThinkPHP的数据库查询技巧,包括单条和多条数据查询、分批处理数据、游标查询以及聚合查询。重点讲解了如何使用chunk方法进行分批处理,游标查询的实现,并给出了聚合查询的例子,如统计表数据总数、字段最大值和平均值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

thinkphp数据库查询

单数据查询

Db::table('表名')->where('查询',条件)->find();
//如下:
$user = Db::table('nihao')->where('id',31)->find();

多数据查询

//全部数据查询
Db::table('表名')->select()
//多数据查询
Db::table('表名')->where('条件',查询)->select()
// 多数据查询的数据转换为数据
Db::table('表名')->select()->toArray();
//查询某个字段的值
Db::table('表名')->where('查询','条件')->value('字段名');

返回数组查询

Db::table('表名')->column('字段名');

可以指定定id字段的值作为索引

Db::table('表名')->column('字段名','id');
// 指定id字段的值作为索引 返回所有数据
Db::table('表名')->column('*','id');
//返回的是数组形式,要用return需要用json格式输出或用dump()输出

数据进行分批处理,每次处理 N 个数据

Db::table('表名')->chunk(一次查询的个数, function($users) {
		//数据遍历
            foreach ($users as $user) {
                dump($user);
            }
            echo '1';//每次查询打印个1,可以去除
        });

通过从闭包函数中返回false来中止对后续数据集的处理:

Db::table('表名')->chunk(个数, function($users) {
    foreach ($users as $user) {
        // 处理结果集...
		if(条件){
            return false;
        }
    }
});

chunk方法的处理默认是根据主键查询,支持指定字段,例如:

Db::table('表名')->chunk(个数, function($users) {
     foreach ($users as $user) {
             dump($user);
            }
     echo '1';//每次查询打印个1,可以去除
},'自定义字段名');

并且支持指定处理数据的顺序。

Db::table('表名')->chunk(个数, function($users) {
     foreach ($users as $user) {
             dump($user);
            }
     echo '1';//每次查询打印个1,可以去除
},'自定义字段名','desc');

游标查询一次查询一条

        $cursor = Db::table('表名')->cursor();
        foreach($cursor as $user){
            dump($user);
        }

查询的数组排序,加上order即可
如:

Db::table('表名')->order('排序的字段id','排序方式desc')->select();

可以用removeOption(’’)清理掉上一次查询保留的值
举例清理查询保留的排序

Db::table('表名')->removeOption('order')->select();

聚合查询

返回该表一共有多少数据

Db::table('表名')->count('字段名');

输出该该表该字段最大值

Db::table('表名')->max('字段名');

输出该该表该字段的平均值

Db::table('表名')->avg('字段名');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值