我有一个包含状态列的表,状态是 1-8 之间的数字。
我可以使用查询
SELECT status, COUNT(id) AS total
FROM cart_orders
GROUP BY status;
要获得如下所示的结果:
status | total
1 | 10
2 | 15
3 | 8
4 | 51
5 | 65
...
但这意味着每次我需要数据时,我都必须这样做:
$status = array(1 => null, 2 => null, 3 => null, 4 => null,
5 => null, 6 => null, 7 => null, 8 => null);
foreach($rows as $row){
$status[$row['status']] = $row['total'];
}
其中,虽然不是很多代码,但我想避免这样做,
我想要的是修改查询,所以我最终得到一个如下所示的单行:
1 | 2 | 3 | 4 | 5
10 | 15 | 8 | 51 | 65 ...
所以我可以去,例如$row['4']
我能想到的唯一方法是将每一列作为一个子查询,我宁愿使用代码而不是有 8 个子查询。另一种选择是自行加入表格 7 次,但假设这也不理想?
我还能怎么做?