美文网首页
Laravel实践-sql多重or&and括号优先级处理

Laravel实践-sql多重or&and括号优先级处理

作者: HBLong | 来源:发表于2017-02-08 22:18 被阅读294次

今天在做项目的时候发现了一个bug,具体就是数据库语句
user_id = ? or user_id = '' and oid = ?
当用户ID为具体值或者为空的都要筛选进行,但是发现要想符合效果必须改成
(user_id=? or user_id='') and oid = ?
原语句对应的laravel语句是

$select->where('user_id', '=', $user_id);
$select->orwhere('user_id', '=', '');
$select->where('oid', '=', $oid);

于是改成

$select -> where(function($query) use ($user_id) {
                    $query -> where('user_id', '=', $user_id);
                    $query -> orWhere('user_id', '=', '');
                });
$select->where('oid', '=', $oid);

相关文章

网友评论

      本文标题:Laravel实践-sql多重or&and括号优先级处理

      本文链接:https://www.haomeiwen.com/subject/wwbbittx.html