MySQL SELECT DISTINCT несколько столбцов
Скажем, у меня есть столбцы a, b c, d
в таблице в базе данных MySQL. То, что я пытаюсь сделать, - выбрать различные значения ВСЕХ из этих 4 столбцов в моей таблице (только отдельные значения). Я попробовал такие вещи, как:
SELECT DISTINCT a,b,c,d FROM my_table;
SELECT DISTINCT a,b,c,d FROM my_table GROUP BY a,b,c,d;
Никто из них не работал. Может кто-нибудь помочь здесь?
Спасибо
ПРИМЕЧАНИЕ Я хочу отдельно выделять столбцы a, b, c d
. Нечеткое сочетание значений
Ответы
Ответ 1
может ли это помочь?
select
(SELECT group_concat(DISTINCT a) FROM my_table) as a,
(SELECT group_concat(DISTINCT b) FROM my_table) as b,
(SELECT group_concat(DISTINCT c) FROM my_table) as c,
(SELECT group_concat(DISTINCT d) FROM my_table) as d
Ответ 2
Я знаю, что вопрос слишком стар, во всяком случае:
select a, b from mytable group by a, b
предоставит вам все комбинации.
Ответ 3
Угадав результаты, которые вы хотите, возможно, это запрос, который вы хотите, затем
SELECT DISTINCT a FROM my_table
UNION
SELECT DISTINCT b FROM my_table
UNION
SELECT DISTINCT c FROM my_table
UNION
SELECT DISTINCT d FROM my_table
Ответ 4
Другой простой способ сделать это - concat()
SELECT DISTINCT(CONCAT(a,b)) AS cc FROM my_table GROUP BY (cc);
Ответ 5
Оба ваши запросы верны и должны дать правильный ответ.
Я бы предложил следующий запрос для устранения вашей проблемы.
SELECT DISTINCT a,b,c,d,count(*) Count FROM my_table GROUP BY a,b,c,d
order by count(*) desc
Это поле count count (*). Это даст вам представление о том, сколько строк было удалено с помощью команды group.
Ответ 6
Это даст значения DISTINCT для всех столбцов:
SELECT DISTINCT value
FROM (
SELECT DISTINCT a AS value FROM my_table
UNION SELECT DISTINCT b AS value FROM my_table
UNION SELECT DISTINCT c AS value FROM my_table
) AS derived