MySQL:在1个查询中具有更多WHERE的COUNTS

时间:2014-04-21 14:38:59

标签: mysql count where

是否可以这样做:

SELECT COUNT(username) as username FROM users WHERE username = 'Piet';
SELECT COUNT(email) as email FROM users WHERE email = 'piet@google.nl';
SELECT COUNT(ip_registed) as ip FROM users WHERE ip = '127.0.0.1';

在一个查询中(所以没有子查询)?

1 个答案:

答案 0 :(得分:5)

是的你可以使用SUM()这应该可以做到这一点,使用带表达式的和将导致布尔值1或0,所以当你的表达式求值为true时,这将相应地给你计数,当聚合函数时在没有组的情况下使用它们将导致单行,并将整个表视为一个组

SELECT
SUM(username = 'Piet') as username,
SUM(email = 'piet@google.nl') as email,
SUM(ip = '127.0.0.1') as ip
FROM users