选择两个日期之间的值,再选择一个值以进行检查

时间:2013-06-13 17:11:04

标签: php mysql

我打算使用PHP编写视频脚本。我有流动的问题:: 我想选择过去24小时内当前用户IP未看到的视频。

我使用这个sql命令:

SELECT videos.VideoID FROM  videos,Video_log WHERE Videos.VideoID=Video_log.VideoID Video_log.TIMESTAMP NOT BETWEEN  '$today' AND  '$yesterday' AND Video_log.ip != '127.0.0.1' 

Datebase Tables:

Videos Table :  
VideoID 
VideoURL

表二:

Video_log Table :::
viewID
VideoID
ViewDate
IP

但此sql查询返回过去24小时(今天)已被同一用户IP查看过的视频的视频ID

更简单:

在过去24小时内未查看此IP并选择videoID

1 个答案:

答案 0 :(得分:1)

你的逻辑是not between的倒退。第一个日期必须在第二个日期之前:

SELECT videos.VideoID
FROM  videos join
      Video_log
      on Videos.VideoID=Video_log.VideoID
where Video_log.TIMESTAMP NOT BETWEEN '$yesterday' and '$today' AND
      Video_log.ip != '127.0.0.1'

通过将条件移动到on子句,我也可以自由修复连接语法。您还应该学习如何将参数传递给查询,而不是将它们直接放入字符串中。