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;

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;

15

Ordenar por imagen y luego por 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
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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.