gpt4 book ai didi

mysql - 如何使用 laravel Query Builder 进行复杂查询

转载 作者:搜寻专家 更新时间:2023-10-30 20:37:04 25 4
gpt4 key购买 nike

让我们考虑我有这张表的 senario parameters一些示例数据。 enter image description here

我需要将这些数据查询成下面描述的三类。

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();

希望我的问题是清楚的。预先感谢您的帮助。

最佳答案

我认为使用三个参数的平均值会更容易,因为您需要遵守间隔。

//param_avg = (param1 + param2 + param3)/3;

$query = DB::table('parameters')->get();
//For query 1
$query->where('param1', '=', 100)
->where('param2', '=', 100)
->where('param3', '=', 100);

//For query2
$query->where('param1', '<', 100)
->where('param2', '<', 100)
->where('param3', '<', 100);

//For query3
$query->select(DB::raw('WHERE (param1 + param2 + param3)/3 <=80 AND (param1 + param2 + param3)/3 <100'));

希望对你有所帮助。

关于mysql - 如何使用 laravel Query Builder 进行复杂查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35182414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com