[英]COUNT values in column and produce table of results mysql
提出这个问题的开头-我知道我在这里确实遗漏了一些明显的东西,但是那是星期五下午!
我正在尝试计算某些值出现在同一列中并生成结果表的次数。
到目前为止,这是我的代码:
MySQL数据库
SELECT COUNT(order_status) as printed
FROM orders WHERE order_status = 'Printed Order'
UNION
SELECT COUNT(order_status) as charged
FROM orders WHERE order_status = 'Charged Order'
UNION
SELECT COUNT(order_status) as exchanged
FROM orders WHERE order_status = 'Exchanged Order'
UNION
SELECT COUNT(order_status) as refunded
FROM orders WHERE order_status = 'Refunded Order'
UNION
SELECT COUNT(order_status) as cancelled
FROM orders WHERE order_status = 'Cancelled Order'
GROUP BY order_status
以上查询结果
printed
-------
224
19190
593
2618
2899
代码产生的数字正确,但是,我希望结果看起来如下:
所需结果
printed - 224
charged - 19190
exchanged - 593
refunded - 2618
cancelled -2899
这样,我可以通过关联数组调用即$order_status['printed']
轻松引用它们
任何帮助都会很棒。
添加指定类型的列。 最简单的方法是使用group by
:
select order_status, count(*)
from orders o
group by order_status;
如果使用PDO,则通过以下方式将获取模式设置为默认创建关联数组:
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
尝试:
SELECT order_status, COUNT(order_status) as printed
FROM orders WHERE order_status = 'Printed Order'
GROUP BY order_status
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.