查询WHERE列是IN($ array)只返回一行

时间:2016-08-24 18:50:54

标签: php mysql

我正在尝试查询surveyid包含我的数组$ subscibearray的所有结果。问题是SQL查询只返回第一个结果(在这种情况下为44)而不是所有结果。我尝试使用mysql_fetch_array也没有任何成功。我的结果通过表输出。任何帮助,将不胜感激。我省略了尽可能多的代码以使其易于阅读。

数组格式:

var_dump
$subscribearray

string(17) "'44, 35, 194, 36'"

$result = mysql_query("SELECT * 
                       FROM surveys 
                       WHERE surveyid IN ($subscribearray) 
                       ORDER BY peercompletetime DESC 
                       LIMIT 100") 
or die(mysql_error());

查询:

resource.error

1 个答案:

答案 0 :(得分:1)

你应该:

$subscribearray = join(',', $subscribearray); // 1,2,3

或者:

$subscribearray = "'" . join("','", $subscribearray) . "'"; // '1','2','3'

如果用字符串包装所有id,它将查找字符串,而不是分隔值。 (' 1,2,3&#39)

当然,如果它是一个数字列,你应该使用第一个。