Datenbankabfrage sortieren

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
Goofy19000
User
Beiträge: 21
Registriert: Sonntag 9. Mai 2021, 22:05

Hi,

ich bin ein kompletter Neuling und habe eine frage zur abfrage / Sortierung:

....


cursor.execute("SELECT name,geraet,typ,id from Beispiel";)

if cursor.rowcount > 0:
ergebniss = cursor.fetchall()

print(ergebniss)

cursor.close()
connection.close()



ich habe ca. 50 Datensätze die kommen jetzt alle hintereinander raus in einem großen block. Ich muss diese aber sortiert haben also das Ergebnis sollte so aussehen:

wie bekomme ich das hin das er es mir sortiert? und nicht alles hintereinander ausspuckt? idealerweise mit den Überschriften im Beispiel.

||NAME||GERAET||TYP||ID||
|testA|geraetA|TYP1| 1 |
|testB|geraetB|TYP2| 2 |
|testC|geraetC|TYP3| 3 |
|testD|geraetD|TYP4| 3 |
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

`cursor.fetchall()` liefert dir immer ein Tuple von Tuplen bzw. ein Tuple von Listen zurück - also etwas, worüber du iterieren kannst.

Also mit

Code: Alles auswählen

...
ergebnis = cursor.fetchall()
for zeile in ergebnis:
    print(zeile)
...
bekommst du es zeilenweise ausgegeben. `zeile` ist auch eine Liste bzw. ein Tuple, d.h. auf die Elemente kannst du per Index zugreifen und dann ggf. die Ausgabe so noch weiter formatieren.

Falls du das Ergebnis der Datenbankabfrage an sich nach irgendwas sortiert haben willst, dann musst du halt in den SQL-Query noch eine `ORDER BY` einbauen.

Gruß, noisefloor
Goofy19000
User
Beiträge: 21
Registriert: Sonntag 9. Mai 2021, 22:05

vielen Dank !
Antworten