SQL LIKE % inside array

后端 未结 8 672
我寻月下人不归
我寻月下人不归 2020-12-05 04:52

I know how to perform an SQL LIKE % query for a single value like so:

SELECT * FROM users WHERE name LIKE %tom%;

but how do I do this if th

8条回答
  •  醉梦人生
    2020-12-05 05:26

    In this code we can't get double quotes in sql query

    $sql = array('0'); // Stop errors when $words is empty
    
    foreach($words as $word){
        $sql[] = 'name LIKE %'.$word.'%'
    }
    
    $sql = 'SELECT * FROM users WHERE '.implode(" OR ", $sql);
    
    SELECT * FROM person where name like %"Tom"% OR name like %"Smith"% OR name like %"Larry"%;
    // error in double quotes and % is out side of Double quotes .
    

    Or you can also use comma separated value:-

    $name = array(Tom, Smith, Larry);
    
    $sql="SELECT * FROM person";
    
        extract($_POST);
        if ($name!=NULL){
        $exp_arr= array_map('trim', explode(",",$name));
        echo var_export($exp_arr);
        //die;
            foreach($exp_arr as $val){
            $arr = "'%{$val}%'";
            $new_arr[] = 'name like '.$arr;
            }
    
          $new_arr = implode(" OR ", $new_arr);
          echo $sql.=" where ".$new_arr;
        }
            else {$sql.="";}
    

    Echo sql query like this:-

    SELECT * FROM person where name like '%Tom%' OR name like '%Smith%' OR name like '%Larry%';
    

提交回复
热议问题