【发布时间】:2016-10-13 13:47:51
【问题描述】:
我有一个在 phpmyadmin sql 中完美运行的查询,但是当我尝试在 laravel 5 DB::select 中运行查询时,它给了我一个错误,代码如下:
public function getCheckDueCurrentMonth()
{
$query = "SELECT * FROM history_card WHERE DUE_CAP_CHECK_DATE BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 30 DAY) WHERE MAX(HISTORY_ID) GROUP BY SERIAL_NUMBER ORDER BY DUE_CAP_CHECK_DATE DESC";
$results = DB::select( DB::raw($query));
return $results;
}
这是错误:
QueryException in Connection.php line 761:
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL
syntax;
check the manual that corresponds to your MariaDB server version for the right syntax to
use near
'WHERE MAX(HISTORY_ID) GROUP BY SERIAL_NUMBER ORDER BY DUE_CAP_CHECK_DATE DESC)'
at line 1 (SQL: (SELECT * FROM history_card WHERE DUE_CAP_CHECK_DATE BETWEEN NOW()
AND DATE_ADD(NOW(), INTERVAL 30 DAY) WHERE MAX(HISTORY_ID)
GROUP BY SERIAL_NUMBER ORDER BY DUE_CAP_CHECK_DATE DESC))
【问题讨论】:
-
您只需要一个 WHERE。将第二个更改为 AND/OR,并给它一些可比较的东西。
标签: php mysql laravel laravel-5 laravel-5.2