2009-07-30 9 views
0

Ich sah this post, aber ich habe nicht verstanden, ob dies das gleiche Problem war.SQL-Sortierstatus während der nächsten Abfrage beibehalten?

Meine Datenbank kann für jede Spalte sortiert werden. Wenn ich die Datenbank sortiert habe, wie kann ich diese Reihenfolge nach der nächsten Abfrage beibehalten?

Zum Beispiel:
Sortieren db nach Alter:
sprintf (sql, "select * from Customer_Table ORDER BY age_ID LIMIT OFFSET 100% s;", Offset);

dann sieht der Benutzer auf den nächsten 100 Kunden

sprintf (SQL, "select * from Customer_Table LIMIT OFFSET 100% s;", Offset); // nächster Versatz

Die zurückgegebenen Daten sind nicht mehr nach Alter sortiert. Wie würde ich die letzte Sortierung während der nächsten Abfrage beibehalten?

Muss ich eine Variable übergeben, um den Status beizubehalten, oder hat die Datenbank eine Funktion zum Abrufen ihres letzten Status?

Antwort

2

Abgesehen von der Auswahl der Datensätze in eine temporäre Tabelle und der Auswahl aus dieser Tabelle müssten Sie ORDER BY in jeder Abfrage angeben. Der Server behält keine Art von Status in Bezug auf die vorherige Abfrage bei. Warum ist es ein Problem, die ORDER BY-Klausel in nachfolgenden Abfragen erneut anzugeben?

Ob Sie eine temporäre Tabelle verwenden oder die gesamte Abfrage neu angeben, hängt davon ab, wie Ihre Anwendung strukturiert ist.

+0

So würde die temporäre Tabelle immer mit der letzten Abfrage gefüllt werden, die diese Reihenfolge aufrechterhält. Die nächste Abfrage würde sich in dieser temporären Tabelle befinden, und die Tabelle würde durch diese Abfrage usw. ersetzt. Welche Methoden gibt es, um diese Tabelle zu erstellen? Es ist kein Problem, aber von einem Punkt, was ein Kunde erwartet, wäre es "dumm", wieder sortieren zu müssen. Zusätzliche Klicks Benutzer wollen Qualität, aber sie muss schnell sein oder sie verlassen Ihre Website. –

+1

Eine temporäre Tabelle garantiert keine Bestellung. Sie müssen ORDER BY angeben, wenn Sie die temporäre Tabelle für die Teile abfragen. @Tommy: Die Erstellung der temporären Tabelle hängt von RDBMS ab und ist daher spezifisch für Ihre Plattform. –

+0

ok danke Shannon –

2

Sie müssen bei jeder Anforderung die ORDER BY-Klausel angeben.

Die Art und Weise, wie dies von Ihrem Datenbanksystem optimiert wird, betrifft nicht Ihren Client-Code.

1

SQL-Datenbanken garantieren keine Sortierung, Sie müssen sie bei jedem ausgewählten Aufruf angeben.

+0

Ja, ich sehe das, wenn jemand nach einem kreativen Weg sucht, die letzte Art zu pflegen. –

2

Ergebnissätze, die vom Datenbankmodul generiert werden, werden vergessen, sobald sie erfüllt sind. Jedes Mal, wenn Sie die Datenbank abfragen, müssen Sie Ihre Sortierreihenfolge angeben.

Verwandte Themen