从PHP中的MySQL列获取最常见的值

时间:2016-08-31 21:25:01

标签: php mysql

我在 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,所以有没有办法使查询动态并获得最常用的值

2 个答案:

答案 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