让我们考虑一下我有这个表parameters
和一些样本数据的情景。
我需要将这些数据查询为三个类别,如下所述。
query1 = 获取所有具有param1=param2=param3= 100%
的记录:从这种情况下,输出是第一条记录。这个查询没有问题。
query2 = 获取所有记录:at least param1 < 80 OR param2 < 80 OR param3 < 80 OR all
从这种情况下,输出是第二条和第三条记录。
query3 = 获取所有具有at least param1 >= 80 OR param2 >= 80 OR param3 >= 80 BUT NOT ALL EQUAL to 100%
的记录:从这种情况下,输出是第四和第五条记录。
我真的很喜欢query2和query3。下面是我使用 laravel 查询生成器的查询。
$query = DB::table('parameters');
if ($query === 1) {
$query->where('param1', '=', 100)
->where('param2', '=', 100)
->where('param3', '=', 100);
}elseif ($query === 2) {
$query->where('param1', '<', 80)
->where('param2', '<', 80)
->where('param3', '<', 80);
}else{
$query->whereBetween('param1', [80, 100])
->whereBetween('param2', [80, 100])
->whereBetween('param3', [80, 100]);
}
$result = $query->get();
希望我的问题足够清楚。在此先感谢您的帮助。