我想在数据库中搜索条件是:
select * from table where colnam in ('1','2','3','4','5'//dynamically retrieves);
因此,如果任何字段不可用,我会得到这样的查询,例如,如果只有两个字段:
select * from table where colnam in ('1','2','','','');
但我想要像
这样的查询 select * from table where colnam('1','2');
我不想要额外的引号和逗号。
$qry="select * from table where colnam in ('$int1','$int2','$int3','$int4','$int5')";
echo $qry;
返回
select * from table where colnam in ('1','2','','','');
如果$int3
,$int4
,$int5
不存在
答案 0 :(得分:2)
将非空值添加到数组中,并implode
将其添加到,
并在IN()
中使用
$vals = array();
for($i=1;$i<=5;++$i){
if(isset(${"int".$i})) {
$x = ${"int".$i};
if(!empty($x))
array_push($vals,"'".${"int".$i}."'");
}
}
$ins = implode(",",$vals);
echo $qry="select * from table where colnam in ($ins)";
答案 1 :(得分:0)
尝试以下代码。
$val = "";
foreach ($values as $value) {
if($val == ''){
$val .= $value;
}
else{
$val .= ','.$value;
}
}
此处$ values包含动态列值('1','2','3','4','5')。
然后使用$ val变量作为条件。
我希望这段代码可以帮助你......