Как упорядочить строки по алфавиту в MySQL?

#mysql #sql

Вопрос:

У меня есть следующий запрос в mysql:

 SELECT DISTINCT re1.name as name1, re2.name as name2
FROM Rating ra1 JOIN Reviewer re1
ON re1.rID = ra1.rID
CROSS JOIN
Reviewer re2 JOIN Rating ra2 ON re2.rID = ra2.rID
WHERE ra1.mID = ra2.mID
AND re1.rID != re2.rID
AND re1.rID > re2.rID
ORDER BY name1, name2;
 

Это полученные данные:

введите описание изображения здесь

Как я могу упорядочить полученные строки в алфавитном порядке? (т. е. во втором ряду, чтобы переключить позицию Бриттани и Криса)

Спасибо

Комментарии:

1. Это не упорядочение строк, это упорядочение столбцов.

2. Тебе это не нужно AND re1.rID != re2.rID . Если re1.rID больше , чем re2.rID , они не могут быть равны.

3. Что должно произойти с дубликатом Chris Jackson в столбце name2 ? Это желаемый результат ?

Ответ №1:

Используйте функции LEAST() и GREATEST() :

 SELECT DISTINCT 
       LEAST(re1.name, re2.name) AS name1, 
       GREATEST(re1.name, re2.name) AS name2
FROM ...
 

Комментарии:

1. Спасибо, это сработало! есть ли способ сделать это в среде sqlite? без НАИМЕНЬШЕГО/НАИБОЛЬШЕГО

2. @goldenfish вместо НАИМЕНЬШЕГО() и НАИБОЛЬШЕГО() используйте скалярные функции MIN() и MAX ().