我将复选框值存储为db中的逗号分隔值,如
Features
1,3,4
1,2,3,4,5
3,4,5,6
现在在搜索时我需要根据用户选择记录选择复选框,例如,如果用户选择1 and 6
需要获取匹配记录。我将选中的复选框值作为(0=>1,1=>6)
之类的数组。我不知道如何像FIND_IN_SET(1,Features) OR FIND_IN_SET(6,Features)
它必须像
SELECT * FROM table WHERE FIND_IN_SET(1,Features) OR FIND_IN_SET(6,Features)
答案 0 :(得分:1)
$str='%';
foreach($array as $val)
{$str.=$val.'%';}
SELECT * FROM table WHERE Features like $str
更新
$str='';
foreach($array as $val)
{$str.='or Feature like %'.$val.'%';}
$str[0]='';$str[1]='';
SELECT * FROM table WHERE $str
答案 1 :(得分:0)
我修复了使用以下代码来获取此SELECT * FROM table WHERE FIND_IN_SET(1,Features) OR FIND_IN_SET(6,Features)
if($selCount >1){
foreach($luxPropFeatures as $val) {
$str .="OR FIND_IN_SET('".$val."',LP.luxury_property_feature_id) ";
$trimmed = ltrim($str, "OR");
//$str[0]='';$str[2]='';
}
}else{
foreach($luxPropFeatures as $val) {
$trimmed = "FIND_IN_SET('".$val."',LP.luxury_property_feature_id) ";
}
}