Mysql中的数组WHERE LIKE?

sg5*_*552 9 php mysql arrays

我需要使用数组列表进行SELECT.$array_name包含:

Array ( [0] => gum.cn [1] => lol.com. [2] => ns1.blar.com [3] => test.com [4] => web.cn. )
Run Code Online (Sandbox Code Playgroud)

的print_r($ ARRAY_NAME);

  $string = implode(',',$array_name);


    $tank = "SELECT url FROM `PHP`.`db` WHERE url LIKE '%{$string}%'";
    $result1 = mysql_query($tank); 
      while ($jwp = mysql_fetch_array($result1)) 
      {     
      echo $jwp['url']; 
      echo "<br>"; 
      }
Run Code Online (Sandbox Code Playgroud)

为什么不上面的工作呢?我搜索其他例子,问题是没有使用LIKE条款,所以没有解决方案.请提前帮助,谢谢.

net*_*der 34

它不起作用,因为您的查询将扩展为:

SELECT url FROM `PHP`.`db` WHERE url LIKE '%gum.cn,lol.com.,ns1.blar.com...%'
Run Code Online (Sandbox Code Playgroud)

您必须稍微修改一下您的查询:

$query_parts = array();
foreach ($array_name as $val) {
    $query_parts[] = "'%".mysql_real_escape_string($val)."%'";
}

$string = implode(' OR url LIKE ', $query_parts);

$tank = "SELECT url FROM `PHP`.`db` WHERE url LIKE {$string}";
Run Code Online (Sandbox Code Playgroud)