Я пытаюсь показать список пользователей, список ниже которых составляет activated=1
, а activated=0
учетные записи находятся на верхнем. Я пробовал использовать UNION
, так как мне нужны все неактивные учетные записи как ORDER BY created DESC
, а активированные учетные записи - ORDER BY email
, но по какой-то причине все мои команды ORDER BY
игнорируются. Что я здесь делаю неправильно?MySQL Использование ORDER BY при использовании UNION
(
SELECT
email,
roles.full role,
created
FROM sol_users users
JOIN sol_user_roles ur ON users.id = ur.user_id
JOIN sol_roles roles USING(role_id)
WHERE activated = 0
ORDER BY created DESC
)
UNION
(
SELECT
email,
roles.full role,
created
FROM sol_users users
JOIN sol_user_roles ur ON users.id = ur.user_id
JOIN sol_roles roles USING(role_id)
WHERE activated = 1
ORDER BY email
)
Неактивные пользователи должны быть размещены сверху, чтобы администратор знал, что они должны быть активированы.
Woah. Я никогда не знал, что вы можете использовать условные обозначения для 'ORDER BY'. Такой красивый код! – enchance
Рад, что вам нравится. :) –