如何在同一个表中对这3个查询使用mysqli_fetch_array()
?或者如何在3个查询中进行3次查询?
SELECT clinic,AVG(rating) FROM review GROUP BY clinic ORDER BY clinic
SELECT clinic,COUNT(rating) AS die FROM review WHERE rating = 1 GROUP BY clinic
SELECT clinic,COUNT(rating) AS normal FROM review WHERE rating = 7 GROUP BY clinic
答案 0 :(得分:1)
您可以使用case
表达式将最后两个查询中的条件移动到计算的表达式中。 count
跳过null
s,所以只需使用一个只返回要计算的条件的表达式:
SELECT clinic,
AVG(rating),
COUNT(CASE rating WHEN 1 THEN 1 END) AS die,
COUNT(CASE rating WHEN 7 THEN 1 END) AS normal
FROM review
GROUP BY clinic
ORDER BY clinic
答案 1 :(得分:0)
您可以使用mysqli::multi_query。例如,
$query = "SELECT CURRENT_USER();"; # Example Query
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5"; # Second Example Query
/* execute multi query */
if ($mysqli->multi_query($query)) {
do {
/* store first result set */
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_row()) {
printf("%s\n", $row[0]);
}
$result->free();
}
/* print divider */
if ($mysqli->more_results()) {
printf("-----------------\n");
}
} while ($mysqli->next_result());
}
/* close connection */
$mysqli->close();
由于StackOverflow不是代码编写服务,因此我不打算在您的情况下如何发生这种情况。尝试将其反映到您的代码中,当您遇到问题时,发布问题。
注意:示例来自mysqli::multi_query
整个文档提供的链接。
祝你好运!