MySQL:mysqli_fetch_array() [重复]
Posted
技术标签:
【中文标题】MySQL:mysqli_fetch_array() [重复]【英文标题】:MySQL: mysqli_fetch_array() [duplicate] 【发布时间】:2017-12-22 23:25:09 【问题描述】:如何在同一张表中对这3个查询使用mysqli_fetch_array()
?或者如何将这 3 个查询变成 1 个查询?
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
【问题讨论】:
【参考方案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
【讨论】:
哇,非常感谢 ^.^ 我在 google 和 youtube 上搜索了 5 个小时,但找不到方法。【参考方案2】:您可以使用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();
由于 *** 不是一个代码编写服务,我不会写在你的情况下这将如何发生。尝试将其反映到您的代码中,当您遇到问题时,发布问题。
注意:示例来自mysqli::multi_query
的整个文档提供的链接。
祝你好运!
【讨论】:
恕我直言,多查询几乎从来都不是正确的解决方案。仅仅为每个查询单独调用mysqli_query()
并没有什么好处,而且只会让获取结果变得更加复杂。
是的,但很高兴知道多查询是什么样的 ^.^以上是关于MySQL:mysqli_fetch_array() [重复]的主要内容,如果未能解决你的问题,请参考以下文章
PHP mysqli_free_result()与mysqli_fetch_array()函数
为啥 mysqli_fetch_array() 返回数组大小的两倍? [关闭]
如何修复 mysqli_fetch_array?我使用 php、mysqli 和 html
mysqli_fetch_array() 期望参数 1 为 mysqli_result,布尔值在 [重复]
mysqli_fetch_array():参数 #1 必须是 mysqli_result 类型。如何处理mysqli问题?