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;
Alexandre
la source
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;
ihorko
la source
15

Trier par image puis par activité:

SELECT some_cols
FROM `prefix_users`
WHERE (some conditions)
ORDER BY pic_set, last_activity DESC;
eumiro
la source
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
Pankaj Yadav
la source