Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel查询生成器上的子查询Where条件_Php_Mysql_Laravel - Fatal编程技术网

Php 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

我的问题很简单,我是一名学生,我在学习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_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')