ordine di query mysql per più elementi


96

è possibile ordinare per più righe?

Voglio che i miei utenti siano ordinati per last_activity, ma allo stesso tempo, voglio che gli utenti con le immagini appaiano prima di quelli senza

Qualcosa come questo:

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

2
Dove e come vengono definite le immagini?
eumiro

2
Suggerimento per altre persone. Se lasci ASC / DESC su "last_activity", l'ordinamento predefinito può essere ASC.
Geekygecko

Risposte:


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

15

Ordina per immagine e poi per attività:

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

2
non capisco, dove va la DESC ?? dietro ogni oggetto?
Alexander

2
Sì. Probabilmente vorrai ordinare last_activitydal più recente al più vecchio. E se spieghi come sono definite le immagini (cosa pic_setsignifica), potrei dirti come ordinare anche questo attributo.
eumiro

5
Alexander, credo che tu possa fare ORDER BY pic_set DESC, last_activity DESCo ORDER BY pic_set DESC, last_activity ASCgiù di lì la direzione di ordinamento per ogni colonna, la direzione di ordinamento predefinita in mysql (con configurazione predefinita) è ASC.
ZurabWeb

0
SELECT id, user_id, video_name
FROM sa_created_videos
ORDER BY LENGTH(id) ASC, LENGTH(user_id) DESC
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.