我有命令
SELECT * FROM
(SELECT * FROM episodes ORDER BY created_at DESC) and t1
GROUP BY serial_id
ORDER BY created_at DESC
我将返回 created_at
添加的最后一集的系列。但问题是,当我把它放在主机上时,一切正常,但现在我把它放在 VPS 服务器上,那里总是列出第一集。如果我在 group by serial_id
之后添加 desc
它可以工作,但在 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 |
+---------+-------------+--------+
预先感谢您的帮助
最佳答案
您的查询中似乎有很多错误。
在 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')
关于php - Laravel/Mysql 分组排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39834562/