pedido de consulta mysql por vários itens

95

é possível ordenar por várias linhas?

Quero que meus usuários sejam classificados por last_activity, mas, ao mesmo tempo, quero que os usuários com fotos apareçam antes dos sem

Algo assim:

SELECT some_cols
FROM `prefix_users`
WHERE (some conditions)
ORDER BY last_activity, pic_set DESC;
Alexandre
fonte
2
Onde e como as imagens são definidas?
eumiro
1
Dica para outras pessoas. Se você deixar o ASC / DESC em 'last_activity', a ordem de classificação padrão pode ser ASC.
Geekygecko

Respostas:

137
SELECT some_cols
FROM prefix_users
WHERE (some conditions)
ORDER BY pic_set DESC, last_activity;
Ihorko
fonte
14

Classifique por imagem e depois por atividade:

SELECT some_cols
FROM `prefix_users`
WHERE (some conditions)
ORDER BY pic_set, last_activity DESC;
eumiro
fonte
2
não entendo, para onde vai o DESC ?? por trás de cada item?
Alexander
2
Sim. Você provavelmente deseja pedir last_activitydo mais novo para o mais antigo. E se você explicar como as imagens são definidas (o que pic_setsignifica), eu poderia lhe dizer como classificar esse atributo também.
eumiro
5
Alexander, eu acredito que você pode fazer ORDER BY pic_set DESC, last_activity DESCou ORDER BY pic_set DESC, last_activity ASCentão a direção de classificação para cada coluna, a direção de classificação padrão no mysql (com configuração padrão) é ASC.
ZurabWeb
0
SELECT id, user_id, video_name
FROM sa_created_videos
ORDER BY LENGTH(id) ASC, LENGTH(user_id) DESC
Pankaj Yadav
fonte