Seite 1 von 1

Abfrage SQLite-Datenbank mit Liste

Verfasst: Dienstag 20. August 2019, 12:57
von NewPython19
Hallo,

ich habe eine SQLite-Datenbank mit einer Tabelle, welches aus vier Datenfeldern besteht.
Bei meiner Recherche zu SQLite bin ich auf den Operator "IN" gestoßen.
Wenn ich diesen Operator richtig verstanden habe, ermöglicht er das durchsuchen von Listen.
Ich habe probiert den Operator anzuwenden:

Code: Alles auswählen

("SELECT Date FROM Table WHERE Date IN (?)", (DateList,))
Ich wollte fragen, ob ich den Operator falsch anwende bzw. falsch verstanden habe.
Und wenn ja, wäre ein Tipp für die korrekte Anwendung super!

Re: Abfrage SQLite-Datenbank mit Liste

Verfasst: Dienstag 20. August 2019, 13:50
von __blackjack__
@NewPython19: Der SQL-Vergleichsoperator IN ermöglicht das vergleichen/den Test auf enthalten sein in einer festen Anzahl gegebener Werte. Was Du da versuchst ist eine Python-Liste als *einen* Wert für *einen* Platzhalter einzusetzen. Das geht so nicht. Es muss für jeden Wert einen Platzhalter geben. Also so etwas wie

Code: Alles auswählen

    cursor.execute(
        f"SELECT date FROM table WHERE date IN ({','.join('?' * len(dates))})",
        dates,
    )
Ich persönlich mag ja SQLAlchemy, unter anderem, damit man nicht solchen Code schreiben muss.

Re: Abfrage SQLite-Datenbank mit Liste

Verfasst: Dienstag 20. August 2019, 14:04
von NewPython19
Achso! Vielen Dank für die Antwort!