Подтвердить что ты не робот

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. Нечеткое сочетание значений

4b9b3361

Ответ 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