Wie kann ich den Filter wie in SQL hinzufügen, um Werte, die NICHT NULL sind, aus einer bestimmten Spalte auszuwählen?
SELECT *
FROM table
WHERE YourColumn IS NOT NULL;
Wie kann ich dasselbe mit SQLAlchemy-Filtern tun?
select = select(table).select_from(table).where(all_filters)
python
sqlalchemy
salamey
quelle
quelle
all_filters
hier Warum dasselect_from
?Antworten:
column_obj != None
wird eineIS NOT NULL
Einschränkung erzeugen :oder verwenden
isnot()
(neu in 0.7.9):Demo:
quelle
is
dies nicht durch benutzerdefinierte Klassen überladen werden!=
kann.Ab Version 0.7.9 können Sie den Filteroperator verwenden,
.isnot
anstatt Einschränkungen wie folgt zu vergleichen:query.filter(User.name.isnot(None))
Diese Methode ist nur erforderlich, wenn pep8 ein Problem darstellt.
Quelle: sqlalchemy Dokumentation
quelle
NULL
es nicht als RHS von!=
in SQL gültig ist und die Verwendung vonisnot
besser Ihre Absichten darüber vermittelt, wie die generierte Anweisung aussehen soll.!= NULL
, selbst wenn Sie escolumn != None
auf der Python-Seite verwenden. du bekommstIS NOT NULL
. Mit.isnot()
können Sie jedoch andere Typen erzwingenIS NOT
(denken Sie beispielsweise.isnot(True)
an boolesche Spalten).Falls sich jemand wundert, können Sie Folgendes
is_
generierenfoo IS NULL
:quelle