-4
$query = "select * from a ...";
if($result = mysql_query($query,$con))
{while($row = mysql_fetch_array($result);)
        $arr[0][] = $row;
}
$query = "select * from b ...";
if($result = mysql_query($query,$con))
{
    while($row = mysql_fetch_array($result);)
        $arr[1][] = $row;
}
$query = "select * from c ...";
if($result = mysql_query($query,$con))
{
    while($row = mysql_fetch_array($result);)
        $arr[2][] = $row;
}

3 次查询检索多行不同结构,3 次查询需要 3 次往返,10 次查询需要 10 次往返。

你将如何优化这个案例?

4

2 回答 2

1

选择您实际需要的列,而不是选择 *

除此之外,在不知道您需要什么数据以及它们之间的关系的情况下,没什么好说的。

于 2009-09-21T17:11:46.010 回答
0

你可以试试 UNION:

$query = "SELECT 'a' AS tablename, a.* FROM a
UNION
SELECT 'b' AS tablename, b.* FROM b
UNION
SELECT 'c' AS tablename, c.* FROM c";
if($result = mysql_query($query,$con))
{while($row = mysql_fetch_array($result);)

switch ($row['tablename']) {
    case "a":
        $arr[0][] = $row;
        break;
    case "b":
$arr[1][] = $row;
        break;
    case "c":
        $arr[2][] = $row;
        break;
}
}

请原谅我的 php,这不是我的专业领域:)

于 2009-09-21T17:19:40.300 回答