如何使用具有最大upvote值的count()检索imagepath值

时间:2013-10-04 05:26:14

标签: mysql sql

我的表架构是这样的:

id   ||   imagepath || upvote || downvote

1    ||   abc.jpg   || 50      ||  5
2    ||   abcd.jpg  || 70      ||  1
3    ||   adc.jpg   || 40      ||  4
4    ||   aec.jpg   || 70      ||  4
5    ||   afc.jpg   || 40      ||  4

如何使用max upvote及其 count()检索所有记录的 imagepath

在上述情况下,我想检索 abcd.jpg & aec.jpg ,数量为 2条记录(匹配的记录数),因为它们的最大值均为upvote,(在本例中为 70 )。

我目前通过以下查询检索max upvote imagepath

SELECT imagepath FROM uploadimage ORDER BY upvote DESC LIMIT 1

是否可以使用join或其他东西?

2 个答案:

答案 0 :(得分:2)

select imagepath from uploadimage
where upvote in (
   select max(upvote) from uploadimage
)

这实际上将返回两个记录,每个记录包含imagepath。你怎么能指望得到一个计数呢?我没有意义,因为计数是记录的数量。

答案 1 :(得分:0)

select * from uploadimage
where upvote = (select max(upvote) from  uploadimage)

SQL Fiddle