2011-04-27 125 views
1

我的问题类似于这样的一个MySQL COUNT() multiple columnsmysql count multiple rows

但对我来说,我怎么算复式行:

report table: 

id  t_pro  t_price 
1. voucher 20.00 
2. pro  13.00 
3. pro 1x  13.00 
4. pro 2x  13.00 
5. voucher 20.00 
6. pro 1x  13.00 

$db->query("SELECT COUNT(*) FROM (SELECT t_pro WHERE t_pro LIKE 'pro%' AS pro_tan, SELECT t_pro WHERE t_pro LIKE 'voucher%' AS voucher) WHERE date=CURDATE() "); 

的结果是这样的:

voucher : 2 
pro tan : 4 
+0

? – Neal 2011-04-27 16:15:57

回答

2

您可以使用GROUP BY

SELECT t_pro, COUNT(*) FROM report GROUP BY t_pro; 

注意:这是如果你想要每个t_pro值的计数。否则,你需要修改GROUP BY定制t_pro值协会为什么您使用中的一个SELECT

3
SELECT CASE WHEN t_pro LIKE 'voucher%' THEN 'voucher' WHEN t_pro LIKE 'pro%' THEN 'pro tan' END AS pro, 
     COUNT(*) 
FROM mytable 
WHERE t_pro LIKE 't_pro%' OR t_pro LIKE 'voucher%' 
GROUP BY 
     pro 
+1

@Quassnoi:谢谢。我如何回应结果? 'echo pro tan = $ r ['pro']'?? – tonoslfx 2011-04-27 16:21:49

+0

@ boyee007:你在用什么框架? – Quassnoi 2011-04-27 16:26:44

+0

即时通讯不使用任何框架。其自定义代码。我如何回应结果,如'凭证:2,亲谭:4' – tonoslfx 2011-04-27 16:28:39

0
select t_pro, count(1) from table group by t_pro;