下面我将介绍几种在Yii框架中统计不同类型邮箱数量的方法,包括数据库查询和PHP处理两种方式。
方法一:使用SQL查询直接统计
1. 模型方法实现
// models/User.phpnamespace app\models;use yii\db\ActiveRecord;class User extends ActiveRecord{ // 获取不同类型邮箱的统计 public static function getEmailTypeStats() { return static::find() ->select([ 'email_type' => 'SUBSTRING_INDEX(email, "@", -1)', 'count' => 'COUNT(*)' ]) ->groupBy('email_type') ->orderBy(['count' => SORT_DESC]) ->asArray() ->all(); } // 或者更精确的邮箱域名提取 public static function getEmailDomainStats() { return static::find() ->select([ 'domain' => 'SUBSTRING(email, LOCATE("@", email) + 1)', 'count' => 'COUNT(*)' ]) ->where(['IS NOT', 'email', null]) ->andWhere(['<>', 'email', '']) ->groupBy('domain') ->orderBy(['count' => SORT_DESC]) ->asArray() ->all(); }}
2. 控制器调用
// controllers/UserController.phppublic function actionEmailStats(){ $stats = User::getEmailTypeStats(); return $this->render('email-stats', [ 'stats' => $stats ]);}
本文关键词: Yii 统计 同类型 邮箱 数量 方法
希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, LeCMS, ClassCMS, Fastadmin, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。