以最高计数获取mysql结果

时间:2012-09-28 04:47:37

标签: mysql count

我有一个包含字段的表:

idalbumiduseridkeywords,其中关键字为varchar,并且可以通过分隔符设置多个,例如:一,二,三< / p>

我想获得最热门关键字的前10个结果,但不是同一个用户 我目前使用这个但不确定它是否正确:

 $tableName = $db->nameQuote('#__mytable');

 $sql = "SELECT `id`,`albumid`,`userid`,`keywords`, COUNT(keywords) AS popular FROM ".$tableName." GROUP BY `userid` HAVING COUNT(*) > 1 ORDER BY popular DESC LIMIT ".$lim0.",".$lim;

 $db->setQuery($sql); 

以下代码是否正确。我不确定我是否获得了大多数重复条目的关键字......

1 个答案:

答案 0 :(得分:0)

尝试此查询的大小,我只是在您的分组中捏造,并使用DISTINCT userid作为计数指标

"SELECT `id`,`albumid`,`keywords`, COUNT(DISTINCT userid) AS popularity FROM ".$tableName." GROUP BY `keywords` HAVING popularity >= 1 ORDER BY popularity DESC LIMIT ".$lim0.",".$lim;

但是,如果您的关键字列以逗号分隔,则此查询将不起作用。此查询基于每个记录都有一个关键字条目

的事实