LARAVEL 5.4(但可能是一个更通用的SQL问题)
你好!我有一个结构表:
假设它是我的模型“ Table”。
我想要一个查询:
使用(接收)变量:
$ id 数组['id','string',整数]
其中字符串是'<'或'>'
$ status_not_bad = bool;
(如果为true,则包括所有行,其中'status'!=='bad'AND'status'IS NULL);
例如,给我们:
$id = [['id', '>', 0]];
$status_not_bad = true;
Table::thisquery() ... ->get();
“获取状态不错且id> 0的行”将返回第1行和第3行。
但如果我们给出:
$id = [['id', '<', 3]];
$status_not_bad = true;
Table::thisquery() ... ->get();
“获取状态不差且id <3的行”返回第1行
(应该是使用这些变量返回结果的同一查询)。
答案 0 :(得分:1)
可能您会遇到这样的事情:
UsersDocumentsPopupView()
但是最好先检查$ id键。
答案 1 :(得分:1)
由于第id
行= 3,您需要在where语句中使用<=
将该行包含在结果集中
$id = ['id', '<=', 3];
答案 2 :(得分:0)
所以,我这样工作:
$chain = Sample::when($status_not_bad, function($query){
return $query->where('status', '<>', 'bad')
->orwhereNull('status');
})
->where([$id])
->get();