mysql 原生语句,在laravel中怎么转成Eloquent ORM格式

如题下面是sql语句

SELECT *,( 3959 * ACOS( COS( RADIANS('42.267124') ) * COS( RADIANS( lat ) ) * COS( RADIANS( lng ) - RADIANS('118.952568') ) + SIN( RADIANS('42.267124') ) * SIN( RADIANS( lat ) ) ) ) AS distance FROM `users` having distance <= 50 order by distance asc limit 0,9

这个sql语句要怎么转成Eloquent ORM格式?

还有这个语句在phpmyadmin中执行是可以执行的。
mysql版本5.6
laravel版本5.4
windows系统

Shop::select(DB::raw('*, (st_distance (point (lng, lat),point('.$lng.','.$lat.') ) * 111195 / 1000) AS
                 distance'))->orderBy('distance')->paginate(1);

参考这个

tking
Shop::select(DB::raw('*, (st_distance (point (lng, lat),point('.$lng.','.$lat.') ) * 111195 / 1000) AS
                 distance'))->orderBy('distance')->paginate(1);

参考这个

jasester 回复 tking

我这样写就报错了

Users::select(DB::raw('*, (st_distance (point (lng, lat),point('.$lng.','.$lat.') ) * 111195 / 1000) AS
                 distance'))->where('distance', '<=', 50)->orderBy('distance')->paginate(1);

还有就是我想问st_distance 这个是什么意思?

tking 回复 jasester

把错误贴出来吧

jasester 回复 tking

qq 20170707162847
报这个错误

jasester 回复 tking

可以了,解决了,非常感谢