代码之家  ›  专栏  ›  技术社区  ›  TheNone Nabster

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

  •  1
  • TheNone Nabster  · 技术社区  · 14 年前

    我想使用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 回复  |  直到 14 年前
        1
  •  2
  •   martynthewolf    14 年前
    foreach($result as $key=>$value){
        $idArr[] = $value['id']
    }
    
    $idStr = implode(',', $idArr);
    
    $sql2 = 'SELECT * FROM table where id IN($idStr)'; 
    

    这将给您一个逗号分隔的id字符串,您可以在in()查询中使用它。

    希望能帮上忙

        2
  •  4
  •   Pekka    14 年前

    使用数组:

    $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)'; 
     }
    
    推荐文章