0

我试图从我的表中提取类型为 1、2 或 3 的结果,并且每个事件都有一个日期。我试图只显示未来的事件并对它们进行排序。下面的代码有点工作,除了按日期排序外,它仅根据事件输入数据库的顺序进行排序。

$sql = " SELECT * 
           FROM fitness 
          WHERE type = '3' 
            AND date >= CURRENT_DATE() 
         ORDER BY 'date' ASC";

在此先感谢您的帮助!

4

2 回答 2

0

您在单引号中有“日期”,这意味着文字字符串日期。

去掉单引号。

此外,您不会说您的日期列是DATEDATETIME还是TIMESTAMP项目。如果它是一个DATE项目,那么如果其中许多事件具有相同的日期,那么您的事件将不会有太多区别。

最后,DATE是一个保留字。您可能会因为将 MySQL 用作列名而感到困惑。如果我是你,我会改变它。

于 2013-02-25T00:51:27.157 回答
0

尝试:

$sql = "SELECT * 
        FROM fitness 
        WHERE type = '3' 
        AND date >= CURRENT_DATE() 
        ORDER BY date ASC";

注意日期周围没有单引号。如果这不起作用,请尝试以下操作。

$sql = "SELECT * 
        FROM fitness 
        WHERE type = '3' 
        AND `date` >= CURRENT_DATE() 
        ORDER BY `date` ASC";

在这种情况下,使用反引号字符 ` 而不是单引号。这是因为“日期”是保留字。

于 2013-02-25T00:52:04.410 回答