0

请参考数据库表图像。

在此处输入图像描述

我想为每个用户 ID 计算具有值“Q”的类型。无论我写的是否正确,我都感到困惑。

"SELECT COUNT(type),userid FROM '$db_prefix'posts WHERE type=Q GROUP BY userid";

因此,它将显示 x 用户 ID 的 Q 总数,如下所示:

userid 1 has 25 Q
userid 2 has 11 Q
....

A 和 C 的方式相同,但我认为如果我会得到 Q,那么它对 A 和 C 的工作方式相同。

4

3 回答 3

3

这个查询没问题:

select count(type), userid
from posts
where type='Q'
group by userid

您忘记了 '**Q *'上的引号

此查询一次完成所有字母。

select userid, type, count(*) as count
from posts
group by userid, type
于 2012-11-29T09:41:17.033 回答
2

实际上,您可以通过单个查询为每种类型获取它。像这样:

SELECT type, userid, COUNT(*) AS `n` FROM posts GROUP BY type, userid;

此查询将那些具有相同类型和用户 ID 值的行分组。

回声声明:

echo $q['userid'] .' has '. $q['n'] $q['type'] .' question';

于 2012-11-29T09:23:17.147 回答
1
"SELECT userid, type, COUNT(*) 
FROM {$db_prefix}posts 
GROUP BY userid, type"
于 2012-11-29T09:21:06.060 回答