ordre des requêtes mysql par plusieurs éléments


96

est-il possible de classer par plusieurs lignes?

Je veux que mes utilisateurs soient triés par last_activity, mais en même temps, je veux que les utilisateurs avec des images apparaissent avant ceux sans

Quelque chose comme ça:

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

2
Où et comment les images sont-elles définies?
eumiro

2
Astuce pour d'autres personnes. Si vous désactivez ASC / DESC sur «last_activity», l'ordre de tri par défaut peut être ASC.
Geekygecko

Réponses:


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

15

Trier par image puis par activité:

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

2
je ne comprends pas, où va le DESC ?? derrière chaque article?
Alexander le

2
Oui. Vous souhaitez probablement commander le last_activityplus récent au plus ancien. Et si vous expliquez comment les images sont définies (ce que cela pic_setsignifie), je pourrais également vous dire comment trier cet attribut.
eumiro le

5
Alexander, je crois que vous pouvez le faire ORDER BY pic_set DESC, last_activity DESCou ORDER BY pic_set DESC, last_activity ASCsi la direction de tri pour chaque colonne, direction de tri par défaut dans une base MySQL (avec la configuration par défaut) est ASC.
ZurabWeb

0
SELECT id, user_id, video_name
FROM sa_created_videos
ORDER BY LENGTH(id) ASC, LENGTH(user_id) DESC
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.