繁体   English   中英

如何通过使用GROUP mysql bind_param来计算行数?

[英]How to count row by using GROUP mysql bind_param?

如何通过使用GROUP mysql bind_param来计算行数?

表: check

__________________________
| id | product_id | user |
| 1  |    123     | test |
| 2  |    456     | test |
| 3  |    456     | test |
| 4  |    123     | test |
| 5  |    789     | test |

这是我的代码

<?PHP
$username = "test";
$sql = 'SELECT COUNT(*) FROM check WHERE user = ? GROUP BY product_id';
$statement = $db_mysqli->prepare($sql);
$statement->bind_param('s', $username);
$statement->execute();
$result = $statement->get_result();
$row = $result->fetch_row();
$all_product = $row[0];
echo $all_product;
?>

当我测试代码时显示5我想知道如何为3显示group by product_id

您需要更改您的SQL查询。

SELECT COUNT(DISTINCT PRODUCT_ID) FROM check WHERE user = ?

这将产生3的结果

如果您希望每种产品都排一行,那么您可以这样做:

SELECT product_id, COUNT(*) AS c FROM check WHERE user = ? GROUP BY product_id

看起来像这样:

| product_id | c  |
|    123     | 2  |
|    456     | 2  |
|    789     | 1  |

试试这个查询。

$statement=$mysqli->prepare("SELECT user,COUNT(*) FROM check GROUP BY product_id");

希望对您有帮助。

您可以根据需要使用这三个查询之一。 它将为您提供如下结果。

要获得表-中存在具有不同product_id的行总数:SELECT COUNT(DISTINCT product_id )FROM check; 结果-:

COUNT(DISTINCT product_id )3


要获得具有不同product_id row-的行,请执行以下操作:SELECT COUNT(DISTINCT product_id )FROM check GROUP BY product_id ; 结果-:

COUNT(DISTINCT product_id

1

1

1

要获得具有唯一product_id且表中存在重复product_id的计数的行-:

从检查GROUP BY product_id选择COUNT( product_id )结果-:

COUNT( product_id )2 2 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM