2011-02-02 16 views
71

¿es posible ordenar por varias filas?orden de consulta de mysql por varios elementos

Quiero que mis usuarios pueden ordenar por last_activity, pero al mismo tiempo, quiero que los usuarios con imágenes que aparezcan antes que los sin

Algo como esto:

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

¿Dónde y cómo se definen las imágenes? – eumiro

+1

Sugerencia para otras personas. Si deja el ASC/DESC en 'last_activity', el orden de clasificación predeterminado puede ser ASC. – Geekygecko

Respuesta

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

Ordenar por imagen y luego por la actividad:

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

no entiendo, ¿a dónde va el DESC? Detrás de cada artículo? – Alexander

+2

Sí. Es probable que desee ordenar la 'last_activity' de la más nueva a la más antigua. Y si explica cómo se definen las imágenes (qué representa el 'pic_set'), podría decirle cómo ordenar este atributo también. – eumiro

+3

Alexander, creo que puedes hacer 'ORDER BY pic_set DESC, last_activity DESC' o' ORDER BY pic_set DESC, last_activity ASC' para ordenar la dirección para cada columna, la dirección de clasificación predeterminada en mysql (con configuración predeterminada) es ASC. – Piero

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