如何在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'));
答案 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子句