[英]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
要获得具有唯一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.