您好我一直在使用此查询来检索基于orWhere子句的数据
$q->where('created', $date);
$q->where(function ($query) {
$query->where('gender', 'Male')
->where('age', '>=', 18);
})->orWhere(function($query) {
$query->where('gender', 'Female')
->where('age', '>=', 30);
})->orWhere(function($query) {
$query->where('gender', 'Orthodox')
->where('age', '>=', 35);
第一个orWhere子句工作正常,但第二个不是。它似乎是一个范围问题,即()
答案 0 :(得分:3)
正确分组您的条件,应该没问题。
$q->where('created', $date);
$q->where(function ($query) {
$query->where(function ($query) {
$query->where('gender', 'Male')
->where('age', '>=', 18);
})->orWhere(function ($query) {
$query->where('gender', 'Female')
->where('age', '>=', 30);
})->orWhere(function ($query) {
$query->where('gender', 'Orthodox')
->where('age', '>=', 35);
});
});
答案 1 :(得分:1)
使用额外的where()
关闭:
$q->where('created', $date);
$q->where(function ($q) {
$q->orWhere(function($query) {
$query->where('gender', 'Male')
->where('age', '>=', 18);
})->orWhere(function($query) {
$query->where('gender', 'Female')
->where('age', '>=', 30);
})->orWhere(function($query) {
$query->where('gender', 'Orthodox')
->where('age', '>=', 35);
});
});