orden de consulta de mysql por varios elementos

96

¿Es posible ordenar por múltiples filas?

Quiero que mis usuarios estén ordenados por last_activity, pero al mismo tiempo, quiero que los usuarios con imágenes aparezcan antes que los que no tienen

Algo como esto:

SELECT some_cols
FROM `prefix_users`
WHERE (some conditions)
ORDER BY last_activity, pic_set DESC;
Alejandro
fuente
2
¿Dónde y cómo se definen las imágenes?
Eumiro
2
Sugerencia para otras personas. Si deja ASC / DESC en 'last_activity', el orden de clasificación predeterminado puede ser ASC.
Geekygecko

Respuestas:

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

Ordenar por imagen y luego por actividad:

SELECT some_cols
FROM `prefix_users`
WHERE (some conditions)
ORDER BY pic_set, last_activity DESC;
eumiro
fuente
2
No entiendo, ¿a dónde va el DESC? detrás de cada artículo?
Alexander
2
Si. Probablemente desee ordenar last_activitydel más nuevo al más antiguo. Y si explica cómo se definen las imágenes (qué pic_setsignifican), también podría decirle cómo ordenar este atributo.
eumiro
5
Alexander, que cree que puede hacer ORDER BY pic_set DESC, last_activity DESCo ORDER BY pic_set DESC, last_activity ASCpor lo especie dirección para cada columna, dirección de ordenación por defecto en MySQL (con la configuración por defecto) es ASC.
ZurabWeb
0
SELECT id, user_id, video_name
FROM sa_created_videos
ORDER BY LENGTH(id) ASC, LENGTH(user_id) DESC
Pankaj Yadav
fuente