Php Laravel查询生成器上的子查询Where条件
我的问题很简单,我是一名学生,我在学习laravel,我不知道如何从子查询创建where条件 这就是问题所在Php Laravel查询生成器上的子查询Where条件,php,mysql,laravel,Php,Mysql,Laravel,我的问题很简单,我是一名学生,我在学习laravel,我不知道如何从子查询创建where条件 这就是问题所在 "SELECT id_parameter,value,code_rule,block,grouping,count FROM rule_definition WHERE (code_rule IN (SELECT code_rule FROM rule_definition WHERE id_parameter = 1 AND value = '$x') AND (id_paramet
"SELECT id_parameter,value,code_rule,block,grouping,count FROM rule_definition WHERE (code_rule IN (SELECT code_rule FROM rule_definition WHERE id_parameter = 1 AND value = '$x') AND (id_parameter = 1 AND value = '$x')) OR (id_parameter != 1 AND value != '$x')";
我正在使用Laravel6.0查询生成器
谢谢我认为您不需要这个子查询。因为它来自相同的表和相同的条件
$query=DB::table('rule_definition')
->选择('id\参数、值、代码\规则、块、分组、计数')
->其中(函数($q)使用($x){
$q->where('id_参数','=',1)
->其中('value','=',$x);
})->orWhere(函数($q)使用($x){
$q->where('id_参数','!=',1)
->其中('value','!=',$x);
})
$x未在函数上定义,为什么?@DavidVictoriaMartinez您需要添加使用($x)
以传递闭包。
$query = DB::table('rule_definition')->where(function ($q){
$q->where('id_parameter','=',1)
->where('value','=','$x');
})->orWhere(function ($q){
$q->where('id_parameter','!=',1)
->where('value','!=','$x');
})->select('id_parameter, value, code_rule, block,grouping, count')