gpt4 book ai didi

PHP MySQL-1 查询计数并显示不同 "status"上的记录

转载 作者:行者123 更新时间:2023-11-29 11:18:03 25 4
gpt4 key购买 nike

我有一个表,其中的记录具有不同的“状态”。到目前为止,我使用单独的查询来根据“状态”调用这些记录的数量。我认为(希望)有更好的方法(更快)来做到这一点。有什么想法吗?

我的 SQL:

$res1 = $mysqli->query("SELECT status FROM test WHERE status='1'") 
$num_1 = mysqli_num_rows($res1);

$res2 = $mysqli->query("SELECT status FROM test WHERE status='2'")
$num_2 = mysqli_num_rows($res2);

$res3 = $mysqli->query("SELECT status FROM test WHERE status='3'")
$num_3 = mysqli_num_rows($res3);

我的 PHP

echo $num_1;
echo $num_2;
echo $num_3;

最佳答案

如果您只需要获取每个状态的计数,您可以使用group by子句在一个查询中执行此操作。

select `status`,count(`status`) as 'count' from `test` group by `status`;

这将返回如下记录集:

+--------+-------+
| status | count |
+--------+-------+
| 1 | 10 |
| 2 | 8 |
| 3 | 12 |
| 4 | 8 |
| 5 | 7 |
| 6 | 3 |
| 7 | 9 |
+--------+-------+

因此,在 PHP 中运行查询后,您可以执行以下操作:

while( $rs=$result->fetch_object() ) echo $rs->status.'='.$rs->count;



$dbhost = 'localhost';
$dbuser = 'xxx';
$dbpwd = 'xxx';
$dbname = 'xxx';
$db = new mysqli( $dbhost, $dbuser, $dbpwd, $dbname );

$sql="select `status`, count(`status`) as 'count' from `test` group by `status`;";
$result=$db->query( $sql );

while( $rs=$result->fetch_object() ) {
echo '<div>Status: ' . $rs->status.', Total: ' . $rs->count . '</div>';
}

$db->close();
$db=null;

关于PHP MySQL-1 查询计数并显示不同 "status"上的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39423101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com