Ich versuche diese Abfrage in aufsteigender Reihenfolge auszuführen:
SELECT title,project_index
FROM projectdetail
WHERE project_index BETWEEN 1 AND 6
ORDER BY title, project_index ASC;
Ich brauche zwei Spalten in aufsteigender Reihenfolge, aber die obige Abfrage gibt Ergebnisse mit nur einer Spalte in ASC
-Reihenfolge zurück.
In aufsteigender Reihenfolge ist Standard für die meisten (wenn nicht alle) DBMS's, also ist Ihre Anweisung in dieser Hinsicht eine Art weird , aber Sie können trotzdem eine Reihenfolge angeben jede einzelne Spalte durch Hinzufügen des Spezifizierers ASC
oder DESC
.
Ihre Aussage würde dann werden
SELECT title
, project_index
FROM projectdetail
WHERE project_index BETWEEN 1 AND 6
ORDER BY
title ASC
, project_index ASC
Bearbeiten
Wie von @Arvo & @Dems erwähnt, sortieren Sie derzeit first nach title
und nach identischen Titeln nach project_index
. Wenn Sie Ihren project_index
zuerst sortieren möchten, müssen Sie ihn zuerst in die ORDER BY
-Klausel einfügen.
Ihre Aussage wird dann
SELECT title
, project_index
FROM projectdetail
WHERE project_index BETWEEN 1 AND 6
ORDER BY
project_index ASC
, title ASC
da ASC
die Standard-Sortierreihenfolge ist, können Sie sie zusammen weglassen
SELECT title
, project_index
FROM projectdetail
WHERE project_index BETWEEN 1 AND 6
ORDER BY
project_index
, title
Wenn Sie mysql verwenden, überprüfen Sie this out.
Wie sie dort sagen, können Sie SELECT * FROM t1 ORDER BY key_part1 DESC, key_part2 ASC;
verwenden.
ORDER BY Titel ASC, Projektindex ASC;
SELECT title,project_index
FROM projectdetail
WHERE project_index BETWEEN 1 AND 6
ORDER BY title ASC, project_index ASC;
UND Sie können weitere Spalten wie ORDER BY col1 ASC, col2 ASC, col3 DESC;
hinzufügen.
Versuche dies:
SELECT title, project_index
FROM projectdetail
WHERE project_index BETWEEN 1 AND 6
ORDER BY project_index, title;
Sie versuchen, beide Spalten in aufsteigender Reihenfolge zu sortieren. In MySQL können Sie mehrere Abfragen in einer Abfrage verwenden. Die Vorliebe für die Order by ist hier jedoch sehr wichtig. Der erste bekommt die größte Präferenz und der nächste die zweite Präferenz.
Das heißt, Ihre Frage lautet
SELECT title,project_index FROM projectdetail
WHERE project_index BETWEEN 1 AND 6 ORDER BY title, project_index ASC;
Wo, Reihenfolge nach Titel erhielt erste Präferenz. Das mysql ordnet zunächst die Spalte "Titel" in aufsteigender Reihenfolge an und zeigt das Ergebnis an. Dann wird nur die Spalte 'project_index' bestellt. Sie können also keine Antwort bekommen, wie Sie möchten.