如果没有找到,MySQL返回0

时间:2010-03-08 09:41:33

标签: php mysql

$query = "SELECT field1, field2  FROM table WHERE id IN (1, 2, 3, 4, 5)"
$result = mysql_query($query);
$array = mysql_fetch_assoc($result);

如果没有id#3,则$ array ['field1'] [3]返回下一个结果(如果有的话)。

但在这种情况下我需要它返回0 因此$ array应该包含5个元素,即使并非所有元素都在数据库中。

是否可以这样做?

2 个答案:

答案 0 :(得分:0)

如果您确定要请求的ID,那么最简单的方法是使用PHP。

首先生成一个正确大小的空数组(不是一个非常耗费机器的操作),然后获取所有行,并在获取时立即将它们放在右键上。

$array = range(0,5);
while(mysql_fetch_assoc($result)) {
  $array[$result['id']] = $result;
}

答案 1 :(得分:0)

您也可以使用array_merge执行与douwe建议相同的操作,即

$query = "SELECT field1, field2 FROM table WHERE id IN (1, 2, 3, 4, 5)"

$result = mysql_query($query);

$array = mysql_fetch_assoc($result);

$myarray = array(0=>"");

$newarray = array_merge($myarray,$array);