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;

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;

14

Classifique por imagem e depois por atividade:

SELECT some_cols
FROM `prefix_users`
WHERE (some conditions)
ORDER BY pic_set, last_activity DESC;

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.