crmeb/CRMEB

最基本的SQL都没弄明白,麻烦领导多监督

kflizongbao opened this issue · 0 comments

$model = $model->field(['*', self::distanceSql($latitude, $longitude)])->order('distance asc');

/**
 * 获取排序sql
 * @param $latitude
 * @param $longitude
 * @return mixed
 */
public static function distanceSql($latitude, $longitude)
{
    $field = "(round(6367000 * 2 * asin(sqrt(pow(sin(((latitude * pi()) / 180 - ({$latitude} * pi()) / 180) / 2), 2) + cos(({$latitude} * pi()) / 180) * cos((latitude * pi()) / 180) * pow(sin(((longitude * pi()) / 180 - ({$longitude} * pi()) / 180) / 2), 2))))) AS distance";
    return $field;
}