我想根据一个查询中的条件,将升级或标准用户计入 users['upgraded'] 或 users['standard'] 变量。我正在使用 mysql 和 PDO。 “id”是主键
像这样:
$user[upgraded] =
SELECT COUNT(*)
FROM users
AS upgraded
WHERE (status1 > 0 OR status2 > 0 OR status3 > 0)
AND upgraded = 1
AND paused = 0
AND timestamp < $timestamp
ORDER BY id DESC
和
$user[standard] =
SELECT COUNT(*)
FROM users
AS standard
WHERE (status1 > 0 OR status2 > 0 OR status3 > 0)
AND upgraded = 0
AND paused = 0
AND timestamp < $timestamp
ORDER BY id DESC
我如何在一个查询中得到这个?帮助将不胜感激!
最佳答案
MySQL bool 运算,我相信这是最短的可能答案
SELECT SUM(upgraded = 1) upgraded,
SUM(upgraded = 0) downgraded
FROM users
WHERE (status1 > 0 OR status2 > 0 OR status3 > 0) AND
paused = 0 AND
timestamp < $timestamp
但是如果你想要更友好的 RDBMS,请使用 CASE
SELECT SUM(CASE WHEN upgraded = 1 THEN 1 ELSE 0 END) upgraded,
SUM(CASE WHEN upgraded = 0 THEN 1 ELSE 0 END) downgraded
FROM users
WHERE (status1 > 0 OR status2 > 0 OR status3 > 0) AND
paused = 0 AND
timestamp < $timestamp
关于php - 如何根据值将mysql中的行计入两个或多个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15640264/