Laravel中如何将多个where条件合并为单个where条件?
如何将多个WHERE条件合并到同一个Laravel Query Builder的WHERE子句中?
当然可以!Laravel的Query Builder支持把多个AND条件打包进同一个where方法里,用二维数组的形式传递就行,这样代码会更紧凑,可读性也不差。
你原来的代码:
DB::table('books')->where('user_id',$uID)->where('author',$author_name)->delete();
可以重构为:
DB::table('books')->where([ ['user_id', '=', $uID], ['author', '=', $author_name] ])->delete();
小说明:
- 这种数组格式的
where条件,默认就是用AND逻辑关联的,和你连续调用两次where的效果完全一致,都会筛选出同时满足user_id = $uID和author = $author_name的记录再执行删除。 - 要是你后续需要调整条件逻辑,比如加入OR判断,也可以在数组里灵活搭配
orWhere,不过针对你当前的需求,上面的数组写法就完美适配了。 - 这种写法不止能用在
delete上,select、update等其他Query Builder操作都支持,很实用!
内容的提问来源于stack exchange,提问作者Sai Tarun
相关产品推荐
相关产品推荐

