我有一个mysql表,如下所示:

1   value1    value2    3534
2   value1    value1    8456
3   value1    value2    3566
4   value1    value3    7345
5   value2    value3    6734

我需要一个查询来 Select 具有不同列2和3的所有行,例如,我希望本例的输出如下所示:

1   value1    value2    3534
2   value1    value1    8456
4   value1    value3    7345
5   value2    value3    6734

我找到了几个关于如何做到这一点的示例,但它们在每个列上都分别 Select 了DISTINCT.

推荐答案

假设第一列是唯一的,您可以这样做:

SELECT id, col2, col3, col4
FROM yourtable
WHERE id IN
(
    SELECT MIN(id)
    FROM yourtable
    GROUP BY col2, col3
)

在线查看它的工作情况:sqlfiddle

Database相关问答推荐

如何高效地存储棋局?

[mongodb],如何通过聚合获得具有许多不同字段的文档的最大值?子字段名称相同

华为Appcube中的对象字段类型

在保持抽象的同时将格式化文本存储在数据库中

如何最好地在 MS SQL Server 中复制整个数据库?

构建具有多个数据库实例或仅单个实例的 Web 应用程序

是否有任何用于 NoSQL 数据库架构迁移的工具?

Joomla 数据库设置

按最强 LIKE 排序 SQL?

审计表:一个表或一个表的每个字段

您如何在数据库中构造配置数据?

为什么有人需要内存数据库?

当另一个进程修改数据库时Hibernate二级缓存失效

如果表不存在,如何使用 Derby Db 创建表

SQL Server 自动备份

ORM 还是Vietnam of Computer Science吗?

SQL - 如何使用 MS SQL 2008 R2 备份数据库并导出为 MDF 文件

Django + PostgreSQL:如何重置主键?

查询 oracle clob 列

将 NULL 插入 MySQL 时间戳