我試圖展示一個用戶列表,其中activated=1
的帳戶列表在下面,而activated=0
帳戶在上面。我嘗試使用UNION
,因爲我需要所有非活動帳戶爲ORDER BY created DESC
,而激活帳戶設置爲ORDER BY email
,但由於某些原因,我的所有ORDER BY
命令都被忽略。我在這裏做錯了什麼?MySQL在使用UNION時使用ORDER BY
(
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
)
非活動用戶需要置於頂部,以便管理員知道這些需要激活。
哇。我從來不知道你可以使用'ORDER BY'的條件。這樣美麗的代碼! – enchance 2013-04-27 10:36:51
很高興你喜歡。 :) – 2013-04-27 10:45:23