MySQL Abfrage

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
The Spirit
User
Beiträge: 276
Registriert: Freitag 8. Juni 2007, 08:50
Wohnort: 84xxx Bereich
Kontaktdaten:

Hi.
Mit

Code: Alles auswählen

c.execute("""
			SELECT `data_main_id`, `data_test`, `data_addon` FROM `data` AS `data` 
			WHERE `data_main_id` = "%s" AND `data_test` = "%s" AND `data_addon` = "%s"
			""" %(id, test, test_addon))
data = c.fetchall()
kann ich ja sozusagen die Abfrage dynamisch gestalten.
Hier kann ich meine Variablen id, test und test_addon im code erzeugen, an die mysql abfrage übergeben und dann die daten mit c.fetchall() holen.

Jetzt möchte ich aber das im SELECT teil ich schon den spaltennamen dynamisch als variable übergeben kann.
Geht das auch?
Ich hab zum teste einfach mal

Code: Alles auswählen

`data_addon` durch "%s" und
%(id, test, test_addon)) durch %(data_addon, id, test, test_addon))
ersetzt.
Leider geht das aber nicht.
Muss ich das anders schreiben, oder geht das einfach nicht?
Thx
Zuletzt geändert von The Spirit am Montag 14. September 2009, 11:28, insgesamt 1-mal geändert.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

The Spirit hat geschrieben:Hi.
Mit

Code: Alles auswählen

c.execute("""
			SELECT `data_main_id`, `data_test`, `data_addon` FROM `data` AS `data` 
			WHERE `data_main_id` = "%s" AND `data_test` = "%s" AND `data_addon` = "%s"
			""" %(id, test, test_addon))
data = c.fetchall()
kann ich ja sozusagen die Abfrage dynamisch gestalten.
Das sollte man aber nicht so machen:
[wiki]Parametrisierte SQL-Queries[/wiki]

@Problem: Such mal im Board. Iirc hatten wir da schon mal eine Frage zu.
The Spirit
User
Beiträge: 276
Registriert: Freitag 8. Juni 2007, 08:50
Wohnort: 84xxx Bereich
Kontaktdaten:

danke, hab´s gefunden. war etwas versteckt, aber jetzt klappts.
Thx
Antworten