子句mysql中逗号分隔的字符串IN数组

时间:2015-03-02 19:30:27

标签: php mysql arrays mysqli

我有一个这样的数组:

 $myarray=  'zzz,aaa,bbb'  ; 

并希望在mysql IN子句中使用它:

 "...  WHERE ids IN ($myarray) "   // didnt work 
 "...  WHERE ids IN ('$myarray') " // didnt work

我得到的错误是该数组zzz中的第一个值表示zzz不是列名。所以我明白我必须用引号将值分开:

 $myarray=  ' "zzz","aaa","bbb" '  ;

但我不知道这样做。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:2)

$myarray = 'zzz,aaa,bbb';
$myarray = implode("','",explode(',',$myarray));
$query   = "..... WHERE ids IN ('$myarray')";

答案 1 :(得分:2)

你需要explode()你的字符串,然后implode()它 -

$myarray = 'zzz,aaa,bbb'; 
$realArray = explode(',', $myarray);
$stringForIn = "'" . implode("','", $realArray) . "'";
echo "WHERE ids IN ($stringForIn)";

答案 2 :(得分:1)

试试:

$myarray=  'zzz,aaa,bbb'  ; 
echo implode '"' . ('","', explode(',', $myarray)) . '"';