tonoslfx
tonoslfx

Reputation: 3442

mysql count multiple row where

my question similar like this one MySQL COUNT() multiple columns.

but for me , how do i count the mutliple row:

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()  ");

the result something like:

voucher : 2
pro tan : 4

Upvotes: 1

Views: 535

Answers (3)

Liv
Liv

Reputation: 6124

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

Upvotes: 0

Jason McCreary
Jason McCreary

Reputation: 72991

You can use GROUP BY:

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

NOTE: this is if you want the count for each t_pro value. Otherwise, you'd need to modify the GROUP BY for custom t_pro value associations

Upvotes: 2

Quassnoi
Quassnoi

Reputation: 425371

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

Upvotes: 3

Related Questions