1

我想在where后续查询的语句中使用查询的结果集。遇到问题,因为第一个查询返回多个结果,我不知道如何将这些结果转换为逗号分隔的字符串以在'IN' ()语句中使用。

$Result1 = mysql_query ("
select id from Table1
where
upper('$Input') = Employee_number   
")
or die(mysql_error());

$Result2 = mysql_query ("

Select * from table2 where ID in ($Result1)")
4

2 回答 2

3

您可以将其组合成一个 MySQL 语句,如下所示:

SELECT * FROM Table2 WHERE id IN
(SELECT id FROM Table1 where upper('$Input') = Employee_number);

但是,如果您真的想像在您的问题中那样做,您可能必须查找如何处理来自 的结果mysql_query,只需在函数参考中查找即可。

于 2013-02-26T22:45:08.367 回答
2
$query1 = mysql_query("
    select id from Table1 
    where upper('$Input') = Employee_number
") or die(mysql_error());

$ids = array();
while($Result1 = mysql_fetch_array($query1))
{
    $ids[] = $Result1['id'];
}

if(sizeof($ids))
{
    $n_ids = implode(',', $ids);

    $query2 = mysql_query("
        select * from Table2 
        where ID IN (" . $n_ids . ")
    ") or die(mysql_error());
}
于 2013-02-26T23:07:52.953 回答