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

时间:2018-09-12 01:23:28

标签: php mysql

如何使用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

3 个答案:

答案 0 :(得分:1)

您需要更改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  |

答案 1 :(得分:0)

尝试此查询。

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

希望它能对您有所帮助。

答案 2 :(得分:0)

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

要获取表-中存在具有不同product_id的行总数: 从检查中选择COUNT(DISTINCT product_id); 结果-:

COUNT(DISTINCT product_id) 3


要获取具有不同product_id row-的行: 从检查GROUP BY product_id中选择COUNT(DISTINCT 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