在mysql中选择不同的2列组合

Jam*_*rzs 23 mysql sql database distinct distinct-values

我有一个mysql表,看起来像这样:

1   value1    value2    3534
2   value1    value1    8456
3   value1    value2    3566
4   value1    value3    7345
5   value2    value3    6734
Run Code Online (Sandbox Code Playgroud)

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

1   value1    value2    3534
2   value1    value1    8456
4   value1    value3    7345
5   value2    value3    6734
Run Code Online (Sandbox Code Playgroud)

我已经找到了一些关于如何做的样本,但它们都在每个列上单独选择不同的.

Fah*_*kar 30

更新1

更好的是你用它来对抗上面.

SELECT id, col2, col3, col4
FROM yourtable
GROUP BY col2, col3;
Run Code Online (Sandbox Code Playgroud)

演示

我之所以说是因为使用CONCAT,我在这种情况下没有得到理想的结果.第一个查询返回5行但是CONCAT返回4行,这是INCORRECT.

希望你明白我的意思.


假设表中的列是(id,col2,col3,col4).

SELECT DISTINCT(CONCAT(col2, col3)) as "dummy column", id, col2, col3, col4
FROM yourtable
GROUP BY CONCAT(col2, col3);
Run Code Online (Sandbox Code Playgroud)

要么

SELECT id, col2, col3, MIN(col4)
FROM yourtable
GROUP BY col2, col3;
Run Code Online (Sandbox Code Playgroud)

实际工作的例子


Mar*_*ers 16

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

SELECT id, col2, col3, col4
FROM yourtable
WHERE id IN
(
    SELECT MIN(id)
    FROM yourtable
    GROUP BY col2, col3
)
Run Code Online (Sandbox Code Playgroud)

看到它在线工作:sqlfiddle