请问这种sql语句用laravel怎么写呢
请问这种sql语句用laravel怎么写呢
select * from `enterprise_company` where `enable` = 1 and (
(`local_tax_company_id` = 22 and `company_id` = 2 and `conglomerate_id` = 1) or
(`local_tax_company_id` = 26 and `company_id` = 2 and `conglomerate_id` = 1) or
(`local_tax_company_id` = 20 and `company_id` = 3 and `conglomerate_id` = 1)
) and `company_configs`.`deleted_at` is null
里面的(local_tax_company_id = 3 and company_id =2 and conglomerate_id =1)不确定可能有多个
我用laravel
EnterpriseCompany::query()
->where('enable', EnterpriseCompany::ENABLE)
->where(function ($q) use ($data) {
foreach ($data as $value) {
$s->orWhere($value);
}
})
->dd();
打印出来是这样
select * from `enterprise_company` where `enable` = 1 and (
(`local_tax_company_id` = 22 or `company_id` = 2 or `conglomerate_id` = 1) or (`local_tax_company_id` = 26 or `company_id` = 2 or `conglomerate_id` = 1) or (`local_tax_company_id` = 20 or `company_id` = 3 or `conglomerate_id` = 1)
) and `enterprise_company`.`deleted_at` is null
该怎么写
先在外面拼接好每一个where
再嵌套一层应该就可以了,至于value的值根据你的业务去调整