我有一个SQL查询问题.我试图在两个日期之间以有序的方式获取数据.这是我遇到问题的代码的简化:
$query = "SELECT Name DateTime FROM table1";
$query .= " ORDER BY DateTime ASC";
$query .= " WHERE DateTime between date1 AND date2";
$result = mysql_query($query);
//fetch data here
while($row = mysql_fetch_array($result))
{
$output[] = $row;
}
print(json_encode($output));
Run Code Online (Sandbox Code Playgroud)
当我注释掉这行时,上面的代码有效:$ query.="ORDER BY DateTime ASC";
我能纠正什么,以便我可以在两个日期之间返回有序数据?
编辑:当我将ORDER移动到WHERE后,现在不应该对$ output进行排序?我将它返回到一个Android应用程序,它似乎并非如此.
ORDER BY子句必须在最后:
$query = "SELECT Name DateTime FROM table1";
$query .= " WHERE DateTime between date1 AND date2";
$query .= " ORDER BY DateTime ASC";
Run Code Online (Sandbox Code Playgroud)
条款的一般顺序是:
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
Run Code Online (Sandbox Code Playgroud)