LAravel 查询生成器 - 有点不同的 Where 查询
LAravel Query Builder - A little different Where Query
我有一个这样的项目table-
我想select公司ID为0和2的所有数据(公司ID可能是1,3,3,4,5,6,...)。
所以,我在 Laravel 查询生成器中所做的是 -
DB::table( 'project')
->where('project.is_archived', '=', 0)
->where('project.companyID', '=', 0)
->orwhere('project.companyID', '=', 2)
->get;
但它不起作用。
有人可以帮忙吗?
DB::table('project')
->where('is_archived', 0)
->whereIn('companyID', [0, 2])
->get();
这应该有效:)
除了 mimo 的解决方案,您还可以使用回调或特殊的 where
方法组合语句。
所以像这样:
DB::table('project')
->where('is_archived', 0)
->orWhere(function(Builder $query) {
$query
->where('companyID', 0)
->where('companyID', 2)
});
将创建此语句:
SELECT * FROM project WHERE (is_archived = 0) AND (companyID = 0 OR companyID = 2)
你也可以用一个简单的 ->where(function($query) {})
来做到这一点,你可以将封装的 where()
语句的 $boolean
参数更改为 'or' (这可以允许更多复杂语句)
请参阅 Laravel 5.1 文档 Parameter Grouping
我有一个这样的项目table-
我想select公司ID为0和2的所有数据(公司ID可能是1,3,3,4,5,6,...)。
所以,我在 Laravel 查询生成器中所做的是 -
DB::table( 'project')
->where('project.is_archived', '=', 0)
->where('project.companyID', '=', 0)
->orwhere('project.companyID', '=', 2)
->get;
但它不起作用。
有人可以帮忙吗?
DB::table('project')
->where('is_archived', 0)
->whereIn('companyID', [0, 2])
->get();
这应该有效:)
除了 mimo 的解决方案,您还可以使用回调或特殊的 where
方法组合语句。
所以像这样:
DB::table('project')
->where('is_archived', 0)
->orWhere(function(Builder $query) {
$query
->where('companyID', 0)
->where('companyID', 2)
});
将创建此语句:
SELECT * FROM project WHERE (is_archived = 0) AND (companyID = 0 OR companyID = 2)
你也可以用一个简单的 ->where(function($query) {})
来做到这一点,你可以将封装的 where()
语句的 $boolean
参数更改为 'or' (这可以允许更多复杂语句)
请参阅 Laravel 5.1 文档 Parameter Grouping