A-A+

thinkphp 去重数据distinct的使用方法

2019年08月18日 PHP开源系统 暂无评论 阅读 0 views 次

记得以前的时候使用过thinkphp的去重函数,可惜时间有点长了,忘记怎么用了,这不,最近要统计一个数据表里的人数,而且有重复数据,比如有一个用户member_id字段占了两条数据,但只要统计一条出来,其实这样的统计直接使用thinkphp中的distinct方法就可以了,很好使。

这里简单来放一个例子出来。

$test_data = M('User'); //实例化数据表

$data = $test_data->Distinct(true)->field('member_id')->order('id desc')->select(); //利用distinct方法去重

dump($data);

好了,这样就把User表里面 member_id 字段去重了,把读出来的数据统计一下总数就可以了,这里有一个小插曲,我就我把 select() 直接更改成为 count却不能成功,如下代码:

$test_data = M('User'); //实例化数据表

$data = $test_data->Distinct(true)->field('member_id')->order('id desc')->count(); //利用distinct方法去重

dump($data);

这样 Distinct 竟然起不到作用,不知道是我程序里面的问题,还是 thinkphp 不支持这种方法,没办法,只能使用 php 循环来解决总数的问题了,当我们把数据库中的数据 select 出来之后,接着往下:

$i=0;
foreach ($list as $value){
$i++;
}

最终 $i 就是我想要统计出来的总数了。

标签:

给我留言