飞飞 2017-04-14 11:47:44 4986次浏览 0条回复 0 0 0

作者:PHP学习网 出处:https://www.viphper.com/?p=1258 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

要求:去除数据库中重复的xid数据,并且只保留一条最大的id的数据

解决:

User::find()->select("id")->groupBy(['xid'])->where(['<>','xid', 0])
            ->andWhere(['<>','province_id', 0])
            ->orderBy('xid DESC')->asArray()->all();

注意:groupBy是将重复的xid打组,orderBy('xid DESC')是关键,倒叙排列后即可将最大的排到最前面。

执行完后可以在数据库中执行SQL语句查看效果

SQL语句:select xid, count(xid) as count from user where xid !=0 and c_province_id !=0 group by xid having count(xid) >1 order by xid DESC

用having统计一下重复数目

    没有找到数据。
您需要登录后才可以回复。登录 | 立即注册