php - 如何在 MySQL 中的单个查询中使用 group by 检索多列计数值?

标签 php mysql mysqli

我正在编写一个复杂的 MySQL 查询。我的实际查询比我下面提到的更复杂。

我有一个名为 example 的表,列为 idnameoption_1option_2 。当然 id 列是 PK 。我想像这样检索:

SELECT `id`,`name`,count(`option_1`),count(`option_2`)

我的问题是我想对 count(`option_1`) 使用 "GROUP BY `id`""GROUP BY `name`" 分别表示 count(`option_2`)。现在我必须在我的 php 代码中将其分解为多个代码。

如何在单个查询中实现我想要的结果?

最佳答案

你的要求没有多大意义。您希望选项 1 按 id 分组,选项 2 按 name 分组,并且希望在一个结果集中显示所有四列。

首先,如果id是主键,那么计数将只是表中的行数,因为不会有重复的id。

其次,即使 id 不是主键,并且存在重复值,分组也是不同的,因此结果集中表示的计数将被错误分组。

<小时/>

鉴于 id 是主键,也许您的意图实际上是获取表中行的总数。也许这个查询能满足您的需求?

SELECT
  name,
  COUNT(option_2) AS options
FROM
  example
GROUP BY
  name
UNION ALL
SELECT
  'Total' AS name,
  COUNT(*) AS options
FROM
  example

这应该会为您提供所有 option_2 值的计数,按名称分组,最后一行的 name 为“Total”,计数为总计表中的行数。

除此之外,由于您在匹配分组时会遇到问题,我不确定您是否能找到所需的答案。

关于php - 如何在 MySQL 中的单个查询中使用 group by 检索多列计数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31135423/

相关文章:

php - 从mysql插入数据后如何从数据库向html添加内容不刷新php

php - 如何将2个php文件中的数据提交到mySQL

android - 与 IBM Worklight 的数据库连接以进行 Android 应用程序开发

python - MySql Connector (python) 和 SQLAlchemy Unicode 问题

php - mysqli 计数如何划分这两个计数并回显结果

javascript - 如何使用ajax上传文件图片?

php - 如何在 php 中将 0.5 转换为 0.50

php - 如何使用 Fullcalendar.io 每年重复生日日期?

php - 筛选产品 价格并排序 升序 描述 PHP MYSQLI

javascript - 使用 AJAX 创建 LIKE 按钮 - laravel 5