mysql - 选择双重复

标签 mysql

举个例子

a   b
--------
1   10
1   10
2   20
2   20
3   20
3   20
4   NULL
5   NULL

我想在 mySQL 查询中使用它:

a       b 
------------
1       10
2 or 3  20
4       NULL
5       NULL

换句话说:元素集(a 上没有重复,bb 上没有重复是 NULL)).

我试试

  • SELECT DISTINCT(a), b,但我有 2 行 b = 20
  • SELECT a, DISTINCT(b),但我在 a 列上有重复项,并且合并了 2 个 NULL 值。
  • GROUP BY aGROUP BY b,与前两个查询相同。

有人对此有想法吗?

最佳答案

SELECT MIN(a) a, b
FROM   table1
WHERE  b IS NOT NULL
GROUP  BY b
UNION
SELECT a, b
FROM   table1
WHERE  b IS NULL

试一试

SELECT MIN(a) a, b
FROM   table1
GROUP  BY COALESCE(b, RAND())

关于mysql - 选择双重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16361722/

相关文章:

php - 循环遍历数据库字段 PHP MySQL

mysql - Sequelize 使用 MySQL 抛出断言错误

php - MySQL 和 PHP 的问题

mysql - 为每个组选择具有最高值的整个记录

php - 如何将 id 从 while 循环传递到 Controller [laravel]

php - CakePHP:如何更改此查找调用以包含关联表中不存在的所有记录?

java - 如何使用Java为MySQL创建新用户?

php - 在mysql表中搜索一个数组

javascript - 使用php获取我的网站用户的登录状态并查看具有该名称的数据库的用户数量

java - 在JSP中创建动态表