2011-02-02 15 views
71

è possibile ordinare da più righe?ordine query mysql per più elementi

Voglio che i miei utenti di essere ordinati per last_activity, ma allo stesso tempo, voglio che il con foto a comparire prima di quelli senza

Qualcosa di simile a questo:

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

Dove e come sono definite le immagini? – eumiro

+1

Suggerimento per altre persone. Se si lascia ASC/DESC su 'last_activity', l'ordinamento predefinito può essere ASC. – Geekygecko

risposta

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

Ordina per foto e poi dall'attività:

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

non capisco, dove va il DESC ?? dietro ogni oggetto? – Alexander

+2

Sì. Probabilmente vuoi ordinare "last_activity" dal più recente al più vecchio. E se spieghi come sono definite le immagini (cosa significa "pic_set"), potrei dirti come ordinare anche questo attributo. – eumiro

+3

Alexander, credo che si possa fare 'ORDER BY pic_set DESC, last_activity DESC' o' ORDER BY pic_set DESC, last_activity ASC' quindi ordinamento per ogni colonna, la direzione di ordinamento predefinita in mysql (con configurazione predefinita) è ASC. – Piero

-1
SELECT id, user_id, video_name 
FROM sa_created_videos 
ORDER BY LENGTH(id) ASC, LENGTH(user_id) DESC