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

I have this query

$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();

I want to have multiple results, each one have the result of one query! how to do it?

It looks like you are using PDO, so you could do something like:

$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);

To get your 4 rowsets.

You can use UNION if table is same for your multiple queries

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

Not sure what you're aiming at, but did you try UNION?

Your SQL statement would look like this:

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;

Please show your desired result if you think of something different.

Since we don't know anything about your database structure, I suggest looking into mysqli::multi_query().

If you're trying to pull related data, I highly suggest you look into doing MySQL JOINs instead. MySQL is another language unto itself that should be learned as a distinct language rather than just a string to be contatenated in PHP.

After you finish with the first result set, use nextRowset() method to advance to the next result set.

You need to have a PHP MySQL driver extension that supports this method.