MySQL-Abfragereihenfolge nach mehreren Elementen

95

ist es möglich, nach mehreren Zeilen zu bestellen?

Ich möchte, dass meine Benutzer nach last_activity sortiert werden, aber gleichzeitig möchte ich, dass die Benutzer mit Bildern vor denen ohne angezeigt werden

Etwas wie das:

SELECT some_cols
FROM `prefix_users`
WHERE (some conditions)
ORDER BY last_activity, pic_set DESC;
Alexander
quelle
2
Wo und wie sind die Bilder definiert?
Eumiro
1
Tipp für andere Leute. Wenn Sie ASC / DESC bei 'last_activity' weglassen, kann die Standardsortierreihenfolge ASC sein.
Geekygecko

Antworten:

137
SELECT some_cols
FROM prefix_users
WHERE (some conditions)
ORDER BY pic_set DESC, last_activity;
ihorko
quelle
14

Sortieren nach Bild und dann nach Aktivität:

SELECT some_cols
FROM `prefix_users`
WHERE (some conditions)
ORDER BY pic_set, last_activity DESC;
Eumiro
quelle
2
Ich verstehe nicht, wohin geht der DESC? hinter jedem Artikel?
Alexander
2
Ja. Sie möchten wahrscheinlich das last_activityNeueste zum Ältesten bestellen . Und wenn Sie erklären, wie die Bilder definiert sind (wofür das pic_setsteht), könnte ich Ihnen auch sagen, wie Sie dieses Attribut sortieren können.
Eumiro
5
Alexander, ich glaube , Sie tun können , ORDER BY pic_set DESC, last_activity DESCoder ORDER BY pic_set DESC, last_activity ASCso Sortierrichtung für jede Spalte, in mysql Standardsortierrichtung (mit Standardkonfiguration) sind ASC.
ZurabWeb
0
SELECT id, user_id, video_name
FROM sa_created_videos
ORDER BY LENGTH(id) ASC, LENGTH(user_id) DESC
Pankaj Yadav
quelle