【发布时间】:2014-05-09 10:17:31
【问题描述】:
SELECT book_id, COUNT(*)
FROM book
GROUP BY book_id
ORDER BY COUNT(*) DESC
如何将此 sql 语句转换为 Laravel ORM?
编辑:
此 sql 语句在 MYSQL 中有效,但在 int laravel 中无效
【问题讨论】:
SELECT book_id, COUNT(*)
FROM book
GROUP BY book_id
ORDER BY COUNT(*) DESC
如何将此 sql 语句转换为 Laravel ORM?
编辑:
此 sql 语句在 MYSQL 中有效,但在 int laravel 中无效
【问题讨论】:
这可能会起作用:
$result = Book::select(array('book_id', DB::raw('COUNT(*) as count')))
->groupBy('book_id')
->orderBy(DB::raw('COUNT(*)'), 'desc')
->get();
要测试/调试您的查询,请在其前面添加:
DB::listen(function($sql, $bindings, $time) {
var_dump($sql);
var_dump($bindings);
});
或者发送到日志:
DB::listen(function($sql, $bindings, $time) {
var_dump($sql);
var_dump($bindings);
});
此代码会将构建的查询绘制到您的浏览器页面中,如下所示:
DB::listen(function($sql, $bindings, $time) {
Log::info($sql);
Log::info($bindings);
});
然后查看您的日志:
php artisan tail
【讨论】:
count(*)订购吗?您之前是否在数据库服务器中运行过该查询?这个错误Column not found: 1054 Unknown column 'COUNT(*)' 看起来你的数据库服务器没有将它理解为一个列。