如何使用组mysql bind\u param计算行数?

2lpgd968  于 2021-06-21  发布在  Mysql
关注(0)|答案(3)|浏览(234)

如何使用组mysql bind\u 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

iqxoj9l9

iqxoj9l91#

尝试此查询。

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

我希望它能帮助你。

bvpmtnay

bvpmtnay2#

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

dphi5xsq3#

您可以根据需要使用这三个查询中的一个。它将给你如下所示的结果。
要获取表-:中具有不同产品标识的行的总数,请选择count(distinct) product_id )从支票;结果-:
计数(不同 product_id ) 3
要获取具有distinct product\u id行的行-:选择count(distinct product_id )从检查分组依据 product_id ; 结果-:
计数(不同 product_id )
1
1

1

要获取具有不同产品标识且表中存在重复产品标识计数的行-:
选择计数( product_id )从检查分组依据 product_id 结果-:
计数( product_id ) 2 2 1

相关问题