SQL Обратная комбинация distinct

328
08 августа 2017, 17:02

Как сделать так что бы при использовании distinct или может другим способом пары типа 10\20 и 20\10 считались одинаковыми? И не дублировались в запросе?

Answer 1

в SELECT секции можно сравнивать значения

SELECT DISTINCT IF(field1 >= field2, field2, field1) as field1, IF(field1 >= field2, field1, field2) as field2
FROM table;

Получается, что мы сортируем поля по их значениям, чтобы меньшие значения шли в 1 колонке, большие в второй. Тогда DISTINCT сработает как вам надо.

Answer 2
SELECT DISTINCT LEAST(field1, field2), GREATEST(field1, field2) 

Но помните, что и этот вариант, и вариант @Skywave - это фуллскан.

READ ALSO
Что лучше для SEO сайта (node.js vs php)? [требует правки]

Что лучше для SEO сайта (node.js vs php)? [требует правки]

Я хочу создать сайт который максимально дружелюбен с SEOОднако, я знаю node

227
Дата и время PHP

Дата и время PHP

Почему то время выводится с отставанием в 2 часа 50 минутКак сделать так, чтобы выводилось правильно?

241
INSERT INTO нет реакции

INSERT INTO нет реакции

При отправке значения не вносятся в таблицу (в phpmyadmin запрос работает)

312
php немного геометрии

php немного геометрии

Помогите найти причину ошибки Код:

234