1

我有一个带有投票功能的图片库,我正在尝试显示数据库中每张图片的投票数。

我有一个投票表,其中包含以下内容......

vote_id │ user_id │ session_id │ ip │ created_date │ status

我正在尝试获取要显示的每张图片的投票数(每页几张图片),但每个 ip 只有 1 票,而且仅限于上周(周一至周日)。

当涉及到这类事情时,我不是天才,但这是我迄今为止能够在 SQL 中获得结果的方法。我在尝试将它实现到 PHP 中时遇到了一些困难......

SELECT COUNT(DISTINCT ip) AS Votes FROM 'vote'(我知道它的基本但你去)

4

3 回答 3

2

您必须对数据进行分组:

group by ip, week(created_date)

于 2011-12-28T15:54:58.130 回答
2

这是 :)
SELECT COUNT(DISTINCT ip) AS Votes, WEEK(created_date) AS week_num FROM 'vote'
group by WEEK(created_date)
order by week_num DESC

于 2011-12-28T16:09:40.173 回答
0

您应该在投票表中有一个类似于 image_id 的列。然后您可以通过此查询来完成此操作。

SELECT image_id, COUNT(DISTINCT ip) AS Votes FROM vote GROUP BY image_id

于 2011-12-28T16:12:29.193 回答