2009-03-21 18 views
7

Ich habe eine Datenbank in SQLlite und ich möchte meine Tabelle in alphabetischer Reihenfolge sortieren. Wie kann ich es tun? Gibt es eine Möglichkeit, Einträge nur mit SQLite zu sortieren oder muss ich zuerst eine Tabelle in ein Array einlesen, sortieren und anschließend in eine Datenbank schreiben?SQLite - Sortieren einer Tabelle

Hier ist meine Abfrage: "Eintrag aus Tabelle SELECT WHERE id =?" Ich muss mit dieser Anweisung Daten aus der Tabelle abrufen, um jeweils nur einen Eintrag zu erhalten.

Vielen Dank im Voraus, Ilya.

Antwort

13
'Select name from table order by name asc' 

‚asc‘ aufsteigt, werden Sie das Textfeld in alphabetischer Reihenfolge umgekehrt ‚desc‘ wird es in umgekehrter alphabetischer Reihenfolge zu Ihnen geben.

Edit: als allgemeine Regel sollten Sie die Datenbank lassen die Sortierung tun. Der folgende Beitrag ist verwandt und wohl fast derselbe. Man könnte es hilfreich sein:

PHP/SQL: ORDER BY or sort($array)?

+0

Danke, das hilft. Aber wie kann ich nach dem Sortieren jeder Zeile neue IDs zuweisen? So dass Änderungen in meiner Tabelle erscheinen. Wenn ich einen Eintrag mit einer ID = 0 bekommen möchte, gibt es mir ein Wort beginnend mit A und so weiter. –

+0

@Ilya: ID-Schlüssel sind keine Zeilennummern. Sie müssen einzigartig sein, aber sie sind nicht in einer Reihenfolge (nicht zusammenhängend). Sortieren Sie basierend auf der 'name' Spalte und verwenden Sie den ID-Wert nur als eine Möglichkeit, die Zeile zu referenzieren. –

+0

Wollen Sie die Daten alphabetisch so umordnen, dass der erste (alphabetische) Eintrag die niedrigste ID-Nummer erhält? Sie können in eine neue Tabelle einfügen und dann die alte löschen, z. SELECT Name IN Tabelle2 FROM Tabelle Reihenfolge nach Name Asc – karim79

0

Wenn Sie Tabellen Empfindlichkeit ohne Fall sortieren möchten oder mit bestimmten locale (nicht Englisch) Sie haben Sortierung zu Ihrer SQLite hinzuzufügen. Here ist ein Beispiel, wie es geht.

2

Es ist auch zu betonen, dass die Reihenfolge der Daten in einer SQL-Datenbank-Tabelle oder abgerufen aus einer solchen Abfrage verwenden, das nicht eine ORDER BY-Klausel enthält, ist nicht definiert.

In der Praxis eine gerade Lesen einer Tabelle ohne einen Auftrag von Daten in einer festen Reihenfolge abgerufen werden und es ist oft die Reihenfolge des Einsatzes. Sich darauf zu verlassen, ist immer ein Fehler, obwohl einer, der alarmierend oft gesehen wird.