我在 phpmyadmin 中有一个名为name
的简单表,只有一列id
,看起来像这样
id
--------
a
b
a
a
a
a
b
现在我想在我的PHP页面上显示最常用的id。 这是我的代码:
$sql_a = mysql_query(SELECT id FROM name WHERE id='a');
$count_a = mysql_num_rows($sql_a);
$sql_b = mysql_query(SELECT id FROM name WHERE id='b');
$count_b = mysql_num_rows($sql_b);
if($count_a > $count_b)
{
$most_used_id = "A";
}
else
{
$most_used_id = "B";
}
echo "<h1>MOST USED ID IS $most_used_id</h1>";
目前我只有2种类型的ID,但将来我会有多个(可能是300+)id,所以有没有办法使查询动态并获得最常用的值
答案 0 :(得分:3)
这是非常冗余的代码。
你会好起来的SELECT id, count(id) AS cnt
FROM name
ORDER BY cnt DESC
GROUP BY id
LIMIT 1
这将为您提供“最受欢迎”的id值,以及它的受欢迎程度。如果您需要获取所有ID的计数,请删除limit
行。
答案 1 :(得分:0)
尝试以下查询:
select id, count(id) cnt
from name
group by id
order by cnt desc
limit 1