是否可以这样做:
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';
在一个查询中(所以没有子查询)?
答案 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