我正在尝试创建一个执行以下操作的查询:使用今天最新的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";
答案 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";