@siroper

Как изменить порядок выборки при group by and where?

Здравствуйте.
Имеется таблица:

id-------email-------banned
10-------test@test.ru-------null
11-------test2@test.ru-------null
12-------test@test.ru-------null
13-------test3@test.ru-------1
14-------test@test.ru-------null


Нужно вывести полностью строки по уникальному email (при этом с where условиями указанными в запросе).

Запрос:
SELECT * FROM users WHERE email IS NOT NULL AND email!='' AND banned IS NULL GROUP BY email


Данный запрос работает, но выводит не в том порядке, нужно вывести по последнему ID.
Т.е. нужно получить в результате запроса пользователя test@test.ru с ID-14, а не с ID-10
14-------test@test.ru-------null
11-------test2@test.ru-------null


Подскажите пожалуйста как правильно составить запрос
  • Вопрос задан
  • 202 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
SELECT *
  FROM `users`
  WHERE `id` IN (
    SELECT MAX(`id`)
      FROM `users`
      WHERE `email` IS NOT NULL
        AND `email` != ''
      GROUP BY `email`
  )
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
kimono
@kimono
Web developer
Попробуйте такой вариант:
SELECT MAX(id), email, banned
FROM users
WHERE email IS NOT NULL
  AND email!=''
  AND banned IS NULL
GROUP BY email
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы