MySQL - 选择 2 列的不同组合并分别返回值

标签 mysql

我需要选择 A 列和 B 列的不同组合,并为 A、B 的组合不唯一的所有行返回 A 的值。

这是我的查询,我想以某种方式添加 A 列以显示在结果中:

SELECT DISTINCT A, B, count(id) as cnt FROM files_imported WHERE file_id = 13 GROUP BY A, B HAVING cnt > 1

查询按原样工作正常,但我需要对其进行修改,以便可以获得满足上述条件的 A 的值。

最佳答案

您可以使用'UNION ' 合并两个查询结果(需要指出它们需要具有相同的列数据类型 - 这是为了解释第二个查询中的 '') 所以你的查询是:

SELECT DISTINCT A, B, count(id) as cnt FROM files_imported WHERE file_id = 13 GROUP BY A, B HAVING cnt > 1
UNION 
SELECT DISTINCT A, '', count(id) as cnt FROM files_imported WHERE file_id = 13 GROUP BY A, B HAVING cnt = 1

关于MySQL - 选择 2 列的不同组合并分别返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21392797/

相关文章:

php - 使用同一表中另一列的键更新 mysql 列

mysql - 无法进行编号为 : 36 - MySQL Error No : 1059 的查询

php - 此查询/数据库不能很好地协同工作

php - 来自数据库jquery的字母表 Accordion

mysql - 将 MyISAM 转换为 InnoDB。有利?结果?

mysql - 错误 1442 : Can't update table in stored function/trigger

php - 数据库查询总是返回 TRUE

php - CID 在 PHP/MySQL 上不显示

mysql - SQL 查询不返回预期值

mysql - mysql中如何结合GROUP BY和MAX获取某字段最大值的全记录?