PHP SQL 查询以获取 table 中最常见的值
PHP SQL Query to get the most common value in the table
我正在尝试让我的查询计算行数,并使其 return 成为该列表中最常见的名称,然后从中计算该名称出现的次数并输出名称和数量有时它在那里
这是我正在使用的代码:
$vvsql = "SELECT * FROM votes WHERE sid=? ORDER BY COUNT(*) DESC LIMIT 1";
$vvresult = $db->prepare($vvsql);
$vvresult->execute(array($_GET['id']));
$vvcount = $vvresult->rowCount();
foreach ($vvresult->fetchAll(PDO::FETCH_ASSOC) as $row) {
echo $row['username'];
echo $vvcount;
}
然而,它只显示 table 中的第一个用户名并计算整个 table。我对此很陌生,所以如果这很糟糕 post 或者没有多大意义,我很抱歉。
你似乎想要:
SELECT name, COUNT(*) as cnt
FROM votes
GROUP BY name
ORDER BY COUNT(*) DESC
LIMIT 1;
注意 GROUP BY
。您可能还想按 sid
过滤,但您的问题没有提到这一点。
select username, count(*) as c
FROM votes
GROUP BY username
ORDER BY c DESC
我正在尝试让我的查询计算行数,并使其 return 成为该列表中最常见的名称,然后从中计算该名称出现的次数并输出名称和数量有时它在那里 这是我正在使用的代码:
$vvsql = "SELECT * FROM votes WHERE sid=? ORDER BY COUNT(*) DESC LIMIT 1";
$vvresult = $db->prepare($vvsql);
$vvresult->execute(array($_GET['id']));
$vvcount = $vvresult->rowCount();
foreach ($vvresult->fetchAll(PDO::FETCH_ASSOC) as $row) {
echo $row['username'];
echo $vvcount;
}
然而,它只显示 table 中的第一个用户名并计算整个 table。我对此很陌生,所以如果这很糟糕 post 或者没有多大意义,我很抱歉。
你似乎想要:
SELECT name, COUNT(*) as cnt
FROM votes
GROUP BY name
ORDER BY COUNT(*) DESC
LIMIT 1;
注意 GROUP BY
。您可能还想按 sid
过滤,但您的问题没有提到这一点。
select username, count(*) as c
FROM votes
GROUP BY username
ORDER BY c DESC