You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在执行mysqli查询后过滤字段数据并统计组合结果?

当然可以实现!完全不用为每种Type和Status的组合单独写查询,给你两种高效的解决方案,看哪种更适配你的场景:


方案1:让SQL直接分组统计(推荐)

数据库天生擅长做聚合统计,这种方案效率最高,尤其是数据量较大时。只需要一次查询,就能拿到所有组合的统计结果:

第一步:优化SQL查询

用GROUP BY同时按Type和Status分组,配合COUNT(*)直接计算每组的数量:

SELECT Type, Status, COUNT(*) AS total 
FROM `data` 
WHERE $COORDT = 'T' 
GROUP BY Type, Status

重要提醒:直接把变量$COORDT拼进SQL有SQL注入风险,建议改用预处理语句(更安全的写法如下):

// 预处理写法,避免注入
$stmt = mysqli_prepare($con, "SELECT Type, Status, COUNT(*) AS total FROM `data` WHERE ? = 'T'");
mysqli_stmt_bind_param($stmt, "s", $COORDT);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);

第二步:PHP处理统计结果

把查询结果存入一个二维数组,之后就能直接调用任意组合的数量:

$counts = [];
// 遍历结果,构建统计数组
while ($row = mysqli_fetch_assoc($result)) {
    $type = $row['Type'];
    $status = $row['Status'];
    $counts[$type][$status] = (int)$row['total'];
}

// 直接获取你需要的统计值,不存在的组合默认返回0(避免报错)
$Type1App_cnt = $counts['Type1']['Approved'] ?? 0;
$Type1DisApp_cnt = $counts['Type1']['Disapproved'] ?? 0;
$Type2App_cnt = $counts['Type2']['Approved'] ?? 0;
// 其他组合以此类推...

方案2:PHP端遍历结果统计(适合需要完整数据的场景)

如果你不仅需要统计数量,还要用到每条数据的其他字段,可以先查询所有符合条件的数据,再在PHP里遍历统计:

第一步:查询所有数据

// 同样建议用预处理语句
$stmt = mysqli_prepare($con, "SELECT Type, Status FROM `data` WHERE ? = 'T'");
mysqli_stmt_bind_param($stmt, "s", $COORDT);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);

第二步:遍历统计

$counts = [];
// 初始化计数器,遍历每一行数据累加
while ($row = mysqli_fetch_assoc($result)) {
    $type = $row['Type'];
    $status = $row['Status'];
    
    // 初始化类型和状态的键(避免Undefined index错误)
    if (!isset($counts[$type])) {
        $counts[$type] = [];
    }
    $counts[$type][$status] = ($counts[$type][$status] ?? 0) + 1;
}

// 直接获取统计值
$Type1App_cnt = $counts['Type1']['Approved'] ?? 0;
$Type1DisApp_cnt = $counts['Type1']['Disapproved'] ?? 0;
// ...其他组合

额外注意事项

  1. 优先选择方案1,数据库处理聚合运算的效率远高于PHP遍历,数据量越大差距越明显。
  2. 无论哪种方案,都要重视SQL注入防护,预处理语句是最可靠的方式。
  3. 用?? 0是为了处理“某个组合没有数据”的情况,避免出现Undefined index错误。

内容的提问来源于stack exchange,提问作者Brian Mc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:39:20