这适用于现有网站,尝试转换为 Laravel 5.8 代码:
SELECT
DATE_FORMAT(created_at, '%M %Y') AS 'article',
DATE_FORMAT(created_at, '%m')AS 'm',
DATE_FORMAT(created_at,'%Y') AS 'y',
COUNT(id) AS 'total'
FROM posts
GROUP BY DATE_FORMAT(created_at, '%Y%M')
ORDER BY m DESC
我试过了:
$archives = DB::select("SELECT DATE_FORMAT(created_at, '%M %Y') AS 'article',DATE_FORMAT(created_at, '%m')AS 'm', DATE_FORMAT(created_at,'%Y') AS 'y', COUNT(id) AS 'total' FROM posts GROUP BY DATE_FORMAT(created_at, '%Y%M') ORDER BY m DESC");`
我有:
错误:SQLSTATE[42000]:语法错误或访问冲突:1055 'amohdb.posts.created_at' 不在 GROUP BY (SQL: SELECT DATE_FORMAT(created_at, '%M %Y') AS 'article',DATE_FORMAT(created_at) , '%m')AS 'm', DATE_FORMAT(created_at,'%Y') AS 'y', COUNT(id) AS 'total' FROM 帖子 GROUP BY DATE_FORMAT(created_at, '%Y%M') ORDER BY米 DESC)
答案原来比我想象的要简单得多
$archives = Post::select(DB::raw("DATE_FORMAT(created_at, '%M %Y') as article"),
DB::raw("COUNT(id) as total"))
->groupBy('article')
->get();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句