我正在尝试编写一个SQL 查询,它总是给出三行结果。数据库如下:
uid | program_date | program_time | program_name
------------------------------------------------
1 | 2012-04-16 | 21:00 | Some movie
2 | 2012-04-16 | 23:00 | Program end
3 | 2012-04-17 | 10:00 | Animation
4 | 2012-04-17 | 11:00 | Some other movie
5 | 2012-04-17 | 12:00 | Some show
我所需要的 - 总是有三排 - 现在正在播出的节目,下一个节目和即将播出的节目。所以如果今天是2012-04-16 21:00
它应该输出Some movie
, Program end
, Animation
.
在2012-04-17 00:00
它应该输出Program end
, Animation
, Some other movie
.
问题是如果没有记录,我需要在一天内“导航”回来WHERE program_date = date("Y-m-d") AND program_time <= date("H:i:s");
还有另一个问题 - 数据库没有 Unix 时间戳字段,只有Uid
, program_date
(日期字段)和program_time
(时间字段)和program_name
.
此外,可能存在Uid
未按顺序插入表中的情况,因为某些节目条目可能会插入到现有节目时间表之间。
我正在尝试各种方法,但想在一个 SQL 查询中完成所有事情,而不是在 PHP 中循环。
有人能帮我一下吗?