Выбор отдельной комбинации столбцов в mysql

У меня есть таблица mysql, которая выглядит так:

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

Мне нужен запрос для выбора всех строк с разными столбцами 2 и 3, например, вывод, который я хочу для этого примера, будет выглядеть так:

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

Я нашел несколько примеров о том, как это сделать, но все они выбираются отдельно для каждого столбца отдельно.

Предполагая, что первый столбец уникален, вы можете сделать это:

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

Смотрите, как он работает в Интернете: sqlfiddle

Обновление 1

Лучше вы используете это против выше.

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

демонстрация

Причина, по которой я говорю, заключается в том, что, используя 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); 

ИЛИ

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

живой рабочий пример

Предполагая, что столбцы в таблице (id, col1, col2, col3) , вы могли бы:

 SELECT * FROM YourTable yt JOIN ( SELECT MIN(id) as minid FROM YourTable GROUP BY col1, col2 ) filter ON filter.minid = yt.id 

Этот запрос гарантирует, что комбинация столбцов 1 и столбца2 уникальна при выборе минимального значения столбца три

 SELECT col1, col2, MIN(col3) FROM yourTable GROUP BY col1, col2 

Простейший запрос для этого

 SELECT col1, col2, MIN(col3) FROM myTable GROUP BY col1, col2 

Использование группы по методу возвращает мне дополнительные строки, где, поскольку явная проверка каждого поля, хотя и длиннее, возвращает то же самое количество записей, что и count (Distinct ..)

 SELECT id, col2, col3, col4 FROM yourtable yt WHERE id = ( SELECT MIN(id) FROM yourtable yt1 WHERE yt.col2 = yt1.col2 AND yt.col3 = yt1.col3 )