mysql - 如何在此查询 laravel 中使用分页

标签 mysql sql laravel laravel-5 pagination

如何为此查询使用分页?

$listings = DB::table('listings')
                ->selectRaw('*, ( 3959 * acos( cos( radians(' . $lat . ') ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians(' . $lng . ') ) + sin( radians(' . $lat .') ) * sin( radians(latitude) ) ) ) AS distance')
                ->having('distance', '<', $distance)
                ->orderBy('distance')->paginate(10);

我试过 paginate(10) 它不起作用。

错误: SQLSTATE[42S22]:未找到列:1054 ‘having 子句’中的未知列‘distance’(SQL:从 listings 中选择 count(*) 作为聚合 distance < 5 )

最佳答案

$distance 必须是一个变量,它应该有你为 $distance 传递的值 应该是这样的

$listings = DB::table('listings')
            ->selectRaw('*, ( 3959 * acos( cos( radians(' . $lat . ') ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians(' . $lng . ') ) + sin( radians(' . $lat .') ) * sin( radians(latitude) ) ) ) AS distance')
           ->having('distance', '<', 100)
           ->orderBy('distance')
           ->paginate(10);

关于mysql - 如何在此查询 laravel 中使用分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42241968/

相关文章:

mysql - 通过选择结果更改 AUTO_INCREMENT 值

php - Laravel 获取每个组的最新记录

php - 如何修复 Laravel 5.7 中仅获取表格中列的第一个字的编辑界面?

mysql - 在同一个 JOIN 中选择同一个表中的多行

mysql - 如何在sql中的where子句中连接多个列?

MySQL - 获取左表元素,尽管 'where' 条件不兼容

php - Laravel 在 where 子句中加入 "and"和 "or"

python - 光标: AttributeError: 'NoneType' object has no attribute 'fetchall'

java - 如何从java中的access中获取两个日期之间的数据?

mysql - 如何实现需要一对一连接然后多对多的sql查询?