使用数组PHP在SQL数据库中搜索

使用数组PHP在SQL数据库中搜索,php,mysql,search,Php,Mysql,Search,我有这部分的疑问: $value = array('one', 'two', 'three'); 该查询仅在数据库包含值=='one'或'two'或'three'时返回结果。 如何将查询更改为返回“一”、“二”或“三”之类的查询 PS抱歉我的英语不好这里有一个快速而肮脏的解决方案: $features_filter .= $this->db->placehold('AND p.id in (SELECT product_id FROM __options WHERE feature

我有这部分的疑问:

$value = array('one', 'two', 'three');
该查询仅在数据库包含值=='one'或'two'或'three'时返回结果。 如何将查询更改为返回“一”、“二”或“三”之类的查询


PS抱歉我的英语不好

这里有一个快速而肮脏的解决方案:

$features_filter .= $this->db->placehold('AND p.id in (SELECT product_id FROM __options WHERE feature_id=? AND value in (?@) ) ', $feature, $value);

谢谢PS非端孔;真是永无止境@谢谢。立即更正。PSS$new.=类似“%$value[$i]”;和$new.=或价值;和$features\u filter.=$this->db->placehold'和p.id在从u选项中选择产品_id,其中feature\u id=?和值“$new.”,$feature;希望我现在没有忘记什么。
$value = array('one', 'two', 'three');


for ($i = 0; $i < sizeof($value); $i++ ):
    $new .= " LIKE '%$value[$i]%'";
    if ( $i < sizeof($value) -1 ) :
         $new .= " OR";
    endif;
endfor;

$features_filter .= $this->db->placehold('AND p.id in (SELECT product_id FROM __options WHERE feature_id=? AND value ' . $new ) ', $feature );
array_walk( $value, function (&$value, $key) {
        $value = " LIKE %$value%";
   });

$new = implode(' OR', $value );