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;

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;

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;

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.