如何从多个查询中获取多个结果

时间:2014-04-01 15:50:15

标签: php mysql

我有这个查询

$query = "Select * FROM table WHERE table.firs_column = 1;
Select * FROM table WHERE table.second_column = 1;
Select * FROM table WHERE table.third_column = 1;
Select * FROM table WHERE table.column = 1";

$stmt   = $db->prepare($query);
$result = $stmt->execute();

我希望有多个结果,每个结果都有一个查询的结果! 怎么做?

5 个答案:

答案 0 :(得分:2)

看起来您正在使用PDO,因此您可以执行以下操作:

$first_set = $stmt->fetchAll(PDO::FETCH_ASSOC);

$stmt->nextRowset();
$second_set = $stmt->fetchAll(PDO::FETCH_ASSOC);

$stmt->nextRowset();
$third_set = $stmt->fetchAll(PDO::FETCH_ASSOC);

$stmt->nextRowset();
$fourth_set = $stmt->fetchAll(PDO::FETCH_ASSOC);

获取4个行集。

答案 1 :(得分:1)

如果您的多个查询的表格相同,则可以使用UNION

Select * FROM table WHERE table.firs_column = 1
UNION
Select * FROM table WHERE table.second_column = 1
UNION
Select * FROM table WHERE table.third_column = 1
UNION
Select * FROM table WHERE table.column = 1

答案 2 :(得分:1)

由于我们对您的数据库结构一无所知,我建议您查看mysqli::multi_query()

如果您尝试提取相关数据,我强烈建议您考虑使用MySQL JOINs。 MySQL本身就是另一种语言,它应该作为一种独特的语言学习,而不仅仅是在PHP中连接的字符串。

答案 3 :(得分:1)

完成第一个结果集后,使用nextRowset()方法前进到下一个结果集。

您需要具有支持此方法的PHP MySQL 驱动程序扩展名。

答案 4 :(得分:0)

不确定您的目标是什么,但是您尝试了UNION吗?

您的SQL语句如下所示:

SELECT * FROM table WHERE table.firs_column = 1
UNION
SELECT * FROM table WHERE table.second_column = 1
UNION
SELECT * FROM table WHERE table.third_column = 1
UNION
SELECT * FROM table WHERE table.column = 1;

如果你想到不同的东西,请显示你想要的结果。