高级 Wheres

最后更新于:2022-04-01 15:11:21

## 群组化参数 有些时候你需要更高级的 where 子句,如「where exists」或嵌套的群组化参数。Laravel 的查询构造器也可以处理这样的情况: ~~~ DB::table('users') ->where('name', '=', 'John') ->orWhere(function($query) { $query->where('votes', '>', 100) ->where('title', '<>', 'Admin'); }) ->get(); ~~~ 上面的查找语法会产生下方的 SQL: `select * from users where name = 'John' or (votes > 100 and title <> 'Admin')` ## Exists 语法 ~~~ DB::table('users') ->whereExists(function($query) { $query->select(DB::raw(1)) ->from('orders') ->whereRaw('orders.user_id = users.id'); }) ->get(); ~~~ 上面的查找语法会产生下方的 SQL: ~~~ select * from users where exists ( select 1 from orders where orders.user_id = users.id ) ~~~
';