SQL php查询过去,现在,不是未来

时间:2016-01-30 14:01:25

标签: php mysql

我正在尝试创建一个执行以下操作的查询:使用今天最新的14篇文章填充该网站。如果今天没有,请填写前一天的文章。

但是如果未来日期在数据库中,则以下SQL查询会中断 不填充页面。关于写这个更好的建议吗?

// Select the current date's content or the previous date's if the current  date's content is unavailable
  $sql = "SELECT * FROM daily WHERE post_date = (SELECT MAX(post_date) from daily) and post_date < NOW() ORDER BY list_order ASC LIMIT 14";

3 个答案:

答案 0 :(得分:0)

如果post_date是日期类型,那么

"SELECT * FROM daily ORDER BY post_date DESC LIMIT 14"

它使用今天最新的14篇文章填充网站。如果没有填写前一天的文章。

答案 1 :(得分:0)

SELECT post_date, ....
FROM daily
WHERE post_date = (
    -- the last date, not future
    SELECT MAX(post_date)
    FROM daily
    WHERE (post_date <= DATE(NOW()))
)
ORDER BY list_order ASC
LIMIT 14

我的建议:SELECT *是一种不好的做法,因为它无法在代码中搜索列的名称,并且它会模糊代码,因为它不知道哪些列有用。< / p>

答案 2 :(得分:0)

将此代码用于您的解决方案。

$sql = "SELECT * FROM daily WHERE post_date = (SELECT MAX(post_date) from daily WHERE post_date < NOW()) ORDER BY list_order ASC LIMIT 14";