Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Você pode adicionar uma instrução if em ORDER BY?


Bem, você pode usar o IF função no MySQL (Observe a ênfase na function uma vez que também há um IF não relacionado declaração )...:
ORDER BY IF(TYPE='Member', LNAME, GROUPNAME) ASC

No entanto, neste caso, parece que a melhor escolha (do ponto de vista da flexibilidade) seria o CASE declaração :
ORDER BY 
    CASE `type` 
        WHEN 'Member' THEN LNAME 
        WHEN 'Group' THEN GROUPNAME
        ELSE 1 END 
    ASC

Observe que todo o bloco de CASE para END deve ser considerado como uma única "unidade". O resultado é o que você está tentando classificar (Daí porque o ASC vem depois do bloco, e não dentro dele)...