使用IN()将查询结果用于另一个查询

时间:2010-11-26 11:03:56

标签: php mysql

我想使用IN():

将查询结果用于另一个查询
foreach($result as $key=>$value){
    $id .= $value['id'];}

$sql2 = 'SELECT * FROM table where id IN($id)'; 

但$ id必须采用'id1,id2,id3'格式。使用$id .= $value['quiz_id'].' , '; 最后一个id之后有一个逗号。如何将$ id值转换为'id1, id2, id3'。 提前致谢

2 个答案:

答案 0 :(得分:4)

使用数组:

$ids = array(); 
foreach($result as $key=>$value){
 $ids[] = $value['id'];}

if (count($ids) > 0)   // to avoid mySQL error on empty array
 {
   $ids_string = implode(",", $ids);
   $sql2 = 'SELECT * FROM table where id IN($ids_string)'; 
 }

答案 1 :(得分:2)

foreach($result as $key=>$value){
    $idArr[] = $value['id']
}

$idStr = implode(',', $idArr);

$sql2 = 'SELECT * FROM table where id IN($idStr)'; 

这将为您提供逗号分隔的ID字符串,您可以在IN()查询中使用它们。

希望有所帮助