Php 使用where条件避免列的Laravel MySQL
我想执行以下搜索查询,当用户发送值时,我想得到匹配的结果 如果任何结果包含“none”,我希望将其从where条件中删除,并仅检查其他结果的匹配值 示例1Php 使用where条件避免列的Laravel MySQL,php,mysql,laravel,Php,Mysql,Laravel,我想执行以下搜索查询,当用户发送值时,我想得到匹配的结果 如果任何结果包含“none”,我希望将其从where条件中删除,并仅检查其他结果的匹配值 示例1 $fructose = high $lactose = mid $polyols = none $fructan = none 如果是这样,我只想检查$果糖=高和$乳糖=中的匹配结果 示例2 $fructose = high $lactose = mid $polyols = mid $fructan = mid 如果是,我
$fructose = high
$lactose = mid
$polyols = none
$fructan = none
如果是这样,我只想检查$果糖=高和$乳糖=中的匹配结果
示例2
$fructose = high
$lactose = mid
$polyols = mid
$fructan = mid
如果是,我想检查所有匹配的结果
请告知,以下是我目前的查询
$fod = FodMap::select('*')
->where('fructose_level', '>=', $fructose)
->where('lactose_level','>=', $lactose)
->where('polyols_level', '>=', $polyols)
->where('fructan_level', '>=', $fructan)
->get();
在这里,我试图通过使用雄辩的结构编写查询来解决您的问题。您应该根据需要在where条件下管理值和运算符 您可以使用如下条件编写查询:
$query = FodMap::select('*');
if($fructose != none){
$query = $query->where('fructose_level',$fructose);
}
if($lactose != none){
$query = $query->where('lactose_level',$fructose);
}
if($polyols != none){
$query = $query->where('polyols_level',$fructose);
}
if($fructan != none){
$query = $query->where('fructan_level',$fructose);
}
$fod = $query->get();
只需添加一张支票。顺便问一下,当值是字符串时,为什么
=
?只有=
可以工作。@rr-rr,您仍然没有在此处检查最佳答案:-但是,您正在使用我答案中的代码。。。