我有命令
SELECT * FROM
(SELECT * FROM episodes ORDER BY created_at DESC) and t1
GROUP BY serial_id
ORDER BY created_at DESC我将返回由created_at添加的最后一集的系列。但问题是,当我让它托管所有的工作,但现在,我把它放在VPS服务器,在那里,我总是列出第一集。如果我在desc后面加上group by serial_id,这是工作,但在laravel (-> groupBy ('serial_id'))上是不可能的。
共享托管:
+---------+-------------+--------+
| id | serial_id | part |
+---------+-------------+--------+
| 8124 | 12 | s02e10 |
| 362 | 8 | s09e12 |
| 4673 | 9 | s01e12 |
| 871 | 4 | s03e24 |
+---------+-------------+--------+我的VPS:
+---------+-------------+--------+
| id | serial_id | part |
+---------+-------------+--------+
| 8124 | 12 | s01e01 |
| 362 | 8 | s01e01 |
| 4673 | 9 | s01e01 |
| 871 | 4 | s01e01 |
+---------+-------------+--------+预先感谢您的帮助
发布于 2016-10-03 15:48:27
在本例中,您可能需要使用RAW:groupBy(DB::raw('serial_id desc'))
就像下面
DB::table( DB::raw("(SELECT * FROM episodes ORDER BY created_at DESC) and t1") )->groupBy(DB::raw('serial_id desc'))->orderBy('created_at', 'desc')->get();发布于 2016-10-03 15:07:05
好像你的查询中有很多错误。
在FROM和ORDER BY之间缺少一个表名
SELECT * FROM (SELECT * FROM
-- ^^ where is the tablename ?
ORDER BY episodes created_at DESC) and t1 GROUP BY ORDER BY serial_id created_at DESC
-- ^^ missing comma, ^^ this 'and' seems in the wrong place and you havent't column for group by and in last another missing comma试着做这样的事情:
SELECT * FROM ( SELECT *
FROM my_table ORDER BY episodes, created_at DESC) t1
GROUP BY my_column_for_group_by
ORDER BY serial_id, created_at DESC在laravel中,您可以使用以下方法指定订单方向:
->orderBy('serial_id')
->orderBy('created_at', 'DESC')https://stackoverflow.com/questions/39834562
复制相似问题