Query DB:raw in laravel



如何在DB:raw查询中添加where子句?我想查询配置文件状态为"公共"的用户。这是我的查询:

$results = DB::select(DB::raw('SELECT *, ( 6371 * acos( cos( radians(' . $lat . ') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(' . $lng . ') ) + sin( radians(' . $lat .') ) * sin( radians(lat) ) ) ) AS distance FROM users HAVING distance < ' . $distance . ' ORDER BY distance'));

您可以将其放置在ORDER BY之前或之后,如下所示:

$results = DB::select(
    DB::raw('
        SELECT
            *, ( 6371 * acos( cos( radians(' . $lat . ') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(' . $lng . ') ) + sin( radians(' . $lat .') ) * sin( radians(lat) ) ) ) AS distance 
        FROM 
            users 
        WHERE
            status = "public"
            AND
            distance < "'. $distance .'"
        ORDER BY 
            distance
    ')
);

不过,说真的,在SQL中这是一件非常简单的事情,在继续你正在做的事情之前,你应该花30分钟的时间复习一个基本的教程。

常规

https://www.digitalocean.com/community/tutorials/a-basic-mysql-tutorial

具体条款

http://www.mysqltutorial.org/mysql-where/

最新更新