sqlite3 execute() Parameterersetzung

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
haukero
User
Beiträge: 3
Registriert: Sonntag 22. Mai 2011, 12:19

Hallo Forum,

Habe folgendes Problem mit sqlite3 cursor.execute():
cursor.execute("SELECT * FROM table ORDER BY name") liefert das richtige Ergebnis.
cursor.execute("SELECT * FROM table ORDER BY ?", ("name",)) liefert dagegen ein falsches Ergebnis (nicht sortiert).

Jetzt wollte ich fragen, ob ich bei der Ersetzung was falsch mache oder ob man Ersetzungen nur bei WHERE Clauses verwenden darf?

cursor.execute("SELECT ?, ? FROM table ORDER BY ?", ("id", "name", "name")) liefert als Ergebnis übrigens nur Datenmüll.

Vielen Dank und Gruss,
haukero
BlackJack

@haukero: Die Ersetzung ist für *Werte*, Du versuchst damit aber einen Spaltennamen einzufügen.
Antworten