查询数据库:laravel

时间:2016-02-15 12:16:53

标签: 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'));

1 个答案:

答案 0 :(得分:2)

您可以将其放在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

特定于WHERE子句

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