如何为此查询使用分页?
$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/