Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL查询在Workbench中工作,但在Laravel中不工作_Mysql_Laravel_Laravel 5_Group By_Sql Order By - Fatal编程技术网

Mysql SQL查询在Workbench中工作,但在Laravel中不工作

Mysql SQL查询在Workbench中工作,但在Laravel中不工作,mysql,laravel,laravel-5,group-by,sql-order-by,Mysql,Laravel,Laravel 5,Group By,Sql Order By,我有一个问题: SELECT DATE_FORMAT(created_at,'%Y-%m') as x, COUNT(created_at) as y FROM table GROUP BY DATE_FORMAT(created_at,'%Y-%m') ORDER BY id DESC LIMIT 12; 它在MySQL Workbench中工作,但当我使用DB::select()在Laravel中粘贴查询时返回错误如下: SQLSTATE[42000]: Syntax error or a

我有一个问题:

SELECT DATE_FORMAT(created_at,'%Y-%m') as x, COUNT(created_at) as y FROM table GROUP BY DATE_FORMAT(created_at,'%Y-%m') ORDER BY id DESC LIMIT 12;
它在MySQL Workbench中工作,但当我使用
DB::select()在Laravel中粘贴查询时返回错误如下:

SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'user.table.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by (SQL: SELECT DATE_FORMAT(created_at,'%Y-%m') as x, COUNT(created_at) as y FROM table GROUP BY DATE_FORMAT(created_at,'%Y-%m') ORDER BY id DESC LIMIT 12;)

当我删除
orderbyiddesc
时,它工作得很好,但我需要反转表格,只选择最后12行。您知道如何修复它吗?

您正在使用的group by和group by与您的ID不同,因此不会在此查询中选择。
您可以使用order by x

并在查询中选择ID,而不仅仅是
x
y
。我不能。这些数据将被json编码并传递到Morris.js linechart,但我已经解决了我的问题。我将id添加到GROUPBY语句中,它可以工作!如果要执行整个查询,请尝试DB::raw()。如果您使用DB::select(),则无法在其中插入整个查询。请发布您的laravel代码。这是更好地理解你可能在代码中丢失的地方,它已经解决了。这是我的代码->$data=json_encode(DB::select(“选择日期_格式(创建时间,'%Y-%m'))作为x,从表组按日期(创建时间,'%Y-%m')格式(创建时间,'%Y-%m'),id顺序按id描述限制12;”);