2ball
@2ball
Хардкор кодер

Как сделать выборку уникальных значений из каждого поля таблицы MySQL?

Добрый.
Столкнулся с проблемой при фильтрации характеристик продукта. Для ускорения процесса работы, еще на этапе архитектуры, многие характеристики были внесены в таблицу самого продукта, как поля (продукт узкопрофильный, расширение характеристик не предвидится).
Но, для того, чтобы вести фильтрационный поиск по значению параметров, необходимо получать уникальные значения по каждому из параметров для выстраивания диапазонов, чекбоксов, селектов и т.д.

Проблема в том, что в каждом поле уникальных значений может быть разное количество и UNION отказывается выбирать такие значения, DISTINCT выбирает цепочки значений, а JOIN DISTINCT к той же таблице без условия выдает ошибку

Условно таблица выглядит так:
---------------------------------
id | article | count | places |
---------------------------------
1 | 123 | 8 | 14 |
---------------------------------
2 | 127 | 1 | 12 |
---------------------------------
3 | 313 | 8 | 13 |
---------------------------------
4 | 44 | 8 | 14 |
---------------------------------
5 | 601 | 8 | 14 |

На выходе мне нужно получить:
-----------------------------
article | count | places
-----------------------------
123 | 8 | 14
------------------------------
127 | 1 | 12
------------------------------
313 | | 13
------------------------------
44 | |
------------------------------
601 | |

Периодически возвращаюсь к этому вопросу второй день, но что-то как-то не выходит.
  • Вопрос задан
  • 2761 просмотр
Пригласить эксперта
Ответы на вопрос 1
Fadmin
@Fadmin
Ну нужно сконкатенировать все поля и потом выбрать дистинкотом из того что получилось.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы