hallo,
ich möchte eine Datenbank wie folgt abfragen:
-------------------------------------------------------
sql = ("""SELECT·
»·······»······· name1, name2, apan, plz, ort·
»·······»······· FROM kunden·
»·······»······· WHERE name1 LIKE 'Abwa%' """)
cur.execute(sql)
-----------------------------------------------
Wie muss der derzeit feste Eintrag hinter dem LIKE aussehen, wenn ich an stelle von 'Abwa%'
dort einen Parameter 'data' einfügen möchte, in dem ein String hinterlegt ist.
Meine Versuche den Wert hinter dem LIKE durch ein %s mit anschließendem
cur.execute(sql, data)
zu ersetzen brachten keinen Erfolg.
Gruß
Armin
Datenbankabfrage mit Parameter
@puba: Ob der Platzhalter im SQL '%s' heisst, hängt von der Datenbanksoftware beziehungsweise vom Python-Modul ab.
Ansonsten ist Dein Ansatz schon richtig, nur das `data` eine Sequenz mit den Werten für die Platzhalter sein muss. Also wenn `data` die Zeichenkette 'Abwa%' ist, dann muss der Aufruf so lauten:
Ansonsten ist Dein Ansatz schon richtig, nur das `data` eine Sequenz mit den Werten für die Platzhalter sein muss. Also wenn `data` die Zeichenkette 'Abwa%' ist, dann muss der Aufruf so lauten:
Code: Alles auswählen
cursor.execute(sql, [data])
Hallo Moderator
Danke für die schnelle Hilfe, Halt geklappt.
Ich musste allerdings die beiden Hochkommata vor und nach dem %s weglassen.
Übrigens das verwendete Datenbankmodul ist psycopg2 für PostgreSQL
daher funktioniert hier das ? nicht.
Gruß
Armin
Danke für die schnelle Hilfe, Halt geklappt.
Ich musste allerdings die beiden Hochkommata vor und nach dem %s weglassen.
Übrigens das verwendete Datenbankmodul ist psycopg2 für PostgreSQL
daher funktioniert hier das ? nicht.
Gruß
Armin