Selecting distinct 2 columns combination in mysql

James Harzs picture James Harzs · Jun 30, 2012 · Viewed 67.3k times · Source

I have a mysql table that looks like this:

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

I need a query to select all the rows with distinct column 2 and 3, for example the output I want for this example will look like this:

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

i've found a few samples on how to do it but they all select distinct on each column individually.

Answer

Fahim Parkar picture Fahim Parkar · Jun 30, 2012

Update 1

Better you use this against above.

SELECT id, col2, col3, col4
FROM yourtable
GROUP BY col2, col3;

Demo

The reason I am saying is because using CONCAT, I am not getting desired result in this case. First query is returning me 5 rows however CONCAT is returning me 4 rows which is INCORRECT.

Hope you got my point.


Assumed the columns in the table are (id, col2, col3, col4).

SELECT DISTINCT(CONCAT(col2, col3)) as "dummy column", id, col2, col3, col4
FROM yourtable
GROUP BY CONCAT(col2, col3);

OR

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

live working example