如何使用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
答案 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
要获取具有唯一product_id且表中存在重复product_id计数的行-:
从检查GROUP BY product_id
中选择COUNT(product_id
)
结果-:
COUNT(product_id
)
2
2
1