从上周看顶部

时间:2013-06-17 08:07:50

标签: mysql sql

我想获取上周查看的视频, 我的客户有下表:

CREATE TABLE `videos` (  
    `id` int(11) NOT NULL AUTO_INCREMENT,  
    `album` int(10) unsigned NOT NULL DEFAULT '0',  
    `name` varchar(225) NOT NULL,  
    `title` varchar(255) NOT NULL DEFAULT '',  
    `uploading_user` int(8) NOT NULL DEFAULT '2715',  
    `host` tinyint(1) unsigned NOT NULL DEFAULT '0',  
    `host_url` varchar(255) NOT NULL DEFAULT '',  
    `active` tinyint(1) unsigned NOT NULL DEFAULT '0',  
    `featured` tinyint(1) unsigned NOT NULL DEFAULT '0',  
    `date_added` date NOT NULL DEFAULT '0000-00-00',  
    `view` int(125) NOT NULL,  
    `rating` int(125) NOT NULL,  
    `rating_count` int(125) NOT NULL,  
    `category` varchar(225) NOT NULL,  
    `genre` varchar(225) NOT NULL,  
    `playlist` varchar(225) NOT NULL,  
    `video_image` varchar(225) NOT NULL,  
    `votecount` int(5) DEFAULT NULL,  
    `banner_image` varchar(255) NOT NULL DEFAULT 'IB_header_solo4.jpg',  
    `bg_image` varchar(255) NOT NULL DEFAULT 'IB_bck_hd_sect.jpg',  
    `bg_color` varchar(255) NOT NULL DEFAULT '#000000',  
    `user_video` int(1) NOT NULL DEFAULT '0',  
    `description` varchar(1000) DEFAULT NULL,  
    `country` varchar(30) DEFAULT NULL,  
    `city` varchar(50) DEFAULT NULL,  
    `location` varchar(50) DEFAULT NULL,  
    `reported` int(1) NOT NULL DEFAULT '0',  
    PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1531 DEFAULT CHARSET=latin1 

在此表date_added字段中,我们添加了此视频的日期,
并且我已在view字段中的每个视频视图上更新了表格,这意味着我拥有特定视频的总观看次数。

现在我想要什么,我如何从上周获取顶级视频视频的结果?
我是否可以添加另一个日期字段,我在其中添加所查看视频的ID? 或任何其他替代解决方案?

3 个答案:

答案 0 :(得分:3)

如果您想获得上周视频数量的视频列表,则需要单独存储视图。表中的views列只允许您访问视图总数,但不会显示生成这些视图的时间。

我会使用带有video_id,datetime和视图数量的表来存储视图。通过使用DATETIME列以及组合video_id和DATETIME是唯一的要求,您可以将视图存储到第二个,并在以后创建更多统计信息。

答案 1 :(得分:1)

我认为最好保留一个单独的表格来存储观看视频的人,将其添加到此表格中,您将受限于您可以作为观看者关联的人数。关于你的查询。如果你保留一个存储weekly views的单独字段会更好。

假设您有一个名为week_views

的字段
 SELECT required_fields FROM videos ORDER BY week_views DESC

答案 2 :(得分:0)

SELECT * (or required fields) FROM videos
WHERE date_added >= CURDATE() - INTERVAL WEEKDAY(CURDATE()) +7 DAY
AND date_added < CURDATE() - INTERVAL WEEKDAY(CURDATE()) DAY
ORDER BY view DESC

这样的事情应该选择上周,周一到周日(不一定是过去7天)的视频。