mysql SELECT * WHERE 日期 + 7 天 >= $today

Cla*_*dio 1 mysql date

我只是想知道是否有一种方法可以只调用一次数据库来完成此过程。我基本上需要计算数据库中今天日期早于字段“date_out”+ 7 天的条目。我在想:

$today = date("Y-m-d"); //this is the format of date_out in my db!

$count_query = "SELECT count(*) FROM `group` WHERE ADDDATE('date_out', INTERVAL 7 DAY) <= $today  ";
$count_result = mysql_query($count_query) or trigger_error("SQL", E_USER_ERROR);
$query_data = mysql_fetch_row($count_result);
$number_ty = $query_data[0];

if ($number_ty >= 1) {
// do something
}
Run Code Online (Sandbox Code Playgroud)

对于此代码,$number_ty 始终为 0。如前所述,此问题的目标是了解是否可以仅通过一次 mysql 调用(而不是两次)来完成计数。我的目标只是简单、干净和懒惰:-)

谢谢!

Asa*_*din 5

你不应该引用date_out

ADDDATE(date_out, INTERVAL 7 DAY)
Run Code Online (Sandbox Code Playgroud)

应该引用$today

<= '$today'
Run Code Online (Sandbox Code Playgroud)

这是一个更正的查询。不过,我建议您研究一下 Mysqli 或 PDO。您正在使用的库已被弃用。

$count_query = "SELECT count(*) FROM `group` WHERE ADDDATE(date_out, INTERVAL 7 DAYS) <= '$today'";
Run Code Online (Sandbox Code Playgroud)