Stack Overflow em Português Asked on November 25, 2021
Eu tenho uma query que seleciona todos os membros do grupo por ordem de rank (dono, administrador e membro) e pela data na qual o membro se juntou ao grupo. Pela coluna access_level
não ser númerica eu não sei como coloco na ordem de rank.
SELECT * FROM group_memberships WHERE group_id = ? ORDER BY access_level ASC, STR_TO_DATE(date_joined, '%M %Y') ASC LIMIT;
access_level usa o tipo de dados ENUM owner, administrator e member, e é exatamente nesta ordem que quero.
Como posso fazer isto?
Você pode trazer um campo de ordenação Fictício na sua consulta e ordenar por ele.
SELECT IF(access_level="owner",1,IF(access_level = "administrator",2,3))AS Ornedacao
FROM group_memberships ORDER BY Ordenacao
Answered by Diego_F on November 25, 2021
Você pode tentar ordenar com um CASE WHEN
ORDER
BY CASE WHEN access_level = 'owner' THEN 1
WHEN access_level = 'administrator' THEN 2
WHEN access_level = 'member' THEN 3
END ASC,
STR_TO_DATE(date_joined, '%M %Y') ASC LIMIT;
Answered by marcos.martins on November 25, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP