SQLAlchemy and_ und or_ filter?

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
Ruffy
User
Beiträge: 34
Registriert: Dienstag 2. Oktober 2012, 11:26

Hi,

ich versuche seit einiger Zeit folgenden SQL Query in SQLAlchemy umzusetzten, leider bisher erfolglos:
SELECT * from tvseries WHERE tvseries.last_update <= 0 AND tvseries.status = 1 AND tvseries.disabled = 0 OR tvseries.forceupdate = 1
leider konnte ich im netz auch nichts finden wie man and und or filter kombinieren kann (oder ich habe die falschen begriffe zum suchen benutzt) wenn ich die filter hintereinander hänge werden die ja auch nacheinander ausgeführt...

im prinzip ist das ziel:
Alle serien deren status 1, disabled 0 und last_update kleiner x ist zu erhalten. oder aber forceupdate = 1 (soll alles vorherige überschreiben)

für tipps/hilfe wäre ich echt dankbar :)
BlackJack

@Ruffy: `and_()` und `or_()` sind halt einfach Funktionen statt Operatoren. Das sind auch keine Filter sondern Funktionen die Vergleiche verknüpfen. Ungetestet:

Code: Alles auswählen

    query = session.query(TVSeries).filter(
        or_(
            and_(
                TVSeries.c.last_update <= 0,
                TVSeries.c.status == 1,
                TVSeries.c.disabled == 0
            ),
            TVSeries.c.forceupdate == 1)
        )
Ruffy
User
Beiträge: 34
Registriert: Dienstag 2. Oktober 2012, 11:26

Manchmal sieht man vorlauter Bäumen den Wald nicht...
Vielen Dank, jetztläufts :)
Antworten