繁体   English   中英

如何在Laravel SQL原始查询中使用括号

[英]how to use parenthesis in Laravel SQL raw query

我想构建一个查询,其中用户需要他/她正确的usernameemailpassword才能登录。

这是我的Laravel查询代码

$query = Adminuser::where('password',$password);
$query->orWhere('email',$username);        
$query->where('username',$username);

通过使用这个,我得到了原始的SQL查询

select * from `adminuser` where `password` = $password and `email` = $username or `username` = $username

但是我需要原始的SQL查询来获得正确的结果

select * from `adminuser` where `password` = $password and (`email` = $username or `username` = $username)

所以我的问题是如何在我的laravel查询中使用括号?

有人帮忙吗?

您需要使用分组。 请阅读更多: 参数分组Laravel 4.2 )。

您的查询应该是这样的(未经过测试):

编辑:

Model::where(function ($query) use ($password) {
    $query->where('password',$password);
})->where(function ($query) use (email, $password){
    $query->where('email',$email)
          ->orWhere('username',$username);
});
$query = Adminuser::where('password',$password)->where(function($query) use ($username){
$query->orWhere(['email' => $username, 'username' => $username])
})->first();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM