我有以下查询,我想从表格中选择所有视频,这些视频的时间不超过所选视频当前时间的6个月:time
我从此获得了此值15638400
:echo strtotime('+6 month', 0);
表格中的所有时间都是UNIX timestamp
格式。
当我运行此查询时,所有视频都会被选中,因为此行不存在。所以我的意思是结果取决于having time - :time < 15638400
。如果我删除它,结果是一样的。
将选择一个视频,它的时间戳为X.与第一个视频相比,此查询将返回上传6个月或更早的所有视频。所以6个月或者比X值小。
$query = "select `video_name`, `title`, `yt_id` from `videos`
where match(`genre`) against (+:genre IN BOOLEAN MODE)
and match(`country`) against (+:country IN BOOLEAN MODE)
having time - :time < 15638400
and `video_name` != :video_name ORDER BY RAND() limit :limit";
try {
$run_query = $db->prepare($query);
$run_query->bindValue(':country', $this->country);
$run_query->bindValue(':genre', $this->genre);
$run_query->bindValue(':time', $this->time);
$run_query->bindValue(':video_name', $this->video_name);
$run_query->bindValue(':limit', $limit, PDO::PARAM_INT);
$run_query->execute();
return $run_query->fetchAll(PDO::FETCH_OBJ);
} catch(PDOException $e) {
echo $e->getMessage();
}
答案 0 :(得分:1)
你可以尝试
select id
from your_table
where your_timestamp_column <= (now() - interval 6 month);