Seite 1 von 1
MariaDB / MySQL Befehl für ranking in python
Verfasst: Sonntag 13. Februar 2022, 14:52
von Eltert
Hallo,
ich kann via python auf meine DB zugreifen, Einträge vornehmen etc..
Jetzt versuche ich folgenden Befehl in python umzusetzen:
Code: Alles auswählen
UPDATE tabelle_1
JOIN (SELECT name,
RANK() OVER (ORDER BY punkte DESC) rank
FROM tabelle_1
) AS ranks ON ranks.name = tabelle_1.name
SET tabelle_1.rank = ranks.rank
Wie gehe ich hier vor?
Grüße
Re: MariaDB / MySQL Befehl für ranking in python
Verfasst: Sonntag 13. Februar 2022, 16:59
von sparrow
Genau so?
Wenn du doch auf deine Datenbank zugreifen kannst, was hindert dich dann daran, genau diesen SQL-Befehl an die Datenbank zu schicken?
Wie greifst du auf die Datenbank zu?
Wie führst du sonst Abfragen aus?
(Ganz abgesehen davon, dass tabelle_1 ein denkbar schlechter Name für eine Relation ist)
Re: MariaDB / MySQL Befehl für ranking in python
Verfasst: Sonntag 13. Februar 2022, 17:32
von Eltert
Sorry, ich bin blutiger Anfänger.
Bisher gehe ich wie folgt vor:
Code: Alles auswählen
import pymysql
....
connection = pymysql.connect(...)
mycursor = connection.cursor()
mycursor.execute("TRUNCATE TABLE example")
connection.close()
Re: MariaDB / MySQL Befehl für ranking in python
Verfasst: Sonntag 13. Februar 2022, 17:46
von sparrow
Es ist nicht unüblich in Python ein ORM wie SQLAlchemy zu verwenden um mit Datenbanken zu arbeiten.
SQLAlchemy auch, wenn man rohes SQL mit der Datenbank sprechen möchte um die Connections zu managen.
Aber grundsätzlich bleibt es bei meiner Frage: Wenn du weißt, dass du genau diese Abfrage in der Form brauchst, warum sendest du sie dann nicht an die Datenbank?
Also was geht dabei schief?
Re: MariaDB / MySQL Befehl für ranking in python
Verfasst: Sonntag 13. Februar 2022, 18:03
von Eltert
Ich weiß nicht, WIE ich es senden soll.
Code: Alles auswählen
mycursor.execute("UPDATE tabelle_1
JOIN (SELECT name,
RANK() OVER (ORDER BY punkte DESC) rank
FROM tabelle_1
) AS ranks ON ranks.name = tabelle_1.name
SET tabelle_1.rank = ranks.rank")
So geht's (sicherlich) nicht...
Re: MariaDB / MySQL Befehl für ranking in python
Verfasst: Sonntag 13. Februar 2022, 18:54
von __deets__
Mal ein Grundlagentutorial von Python durcharbeiten lohnt sich. Dann lernst du unter anderen, dass mit ''' oder """ mehrzeilige String literale erstellt werden können.
Re: MariaDB / MySQL Befehl für ranking in python
Verfasst: Donnerstag 17. Februar 2022, 16:46
von Eltert
Das hat funktioniert. Danke.