Angenommen, aktiv ist ein "boolesches Feld" (winziges int, mit 0 oder 1)
# Find all active users
select * from users where active
# Find all inactive users
select * from users where NOT active
Mit anderen Worten, kann der Operator "NOT" direkt auf das boolesche Feld angewendet werden?
sql
boolean-expression
Eric
quelle
quelle
Antworten:
Ein Boolescher Wert in SQL ist ein Bitfeld. Dies bedeutet entweder 1 oder 0. Die korrekte Syntax lautet:
select * from users where active = 1 /* All Active Users */
oder
select * from users where active = 0 /* All Inactive Users */
quelle
SELECT “model".* FROM “model" WHERE “boolean_column" = ‘f'
gearbeitetMit Postgres können Sie verwenden
select * from users where active
oder
select * from users where active = 't'
Wenn Sie einen ganzzahligen Wert verwenden möchten, müssen Sie ihn als Zeichenfolge betrachten. Sie können keinen ganzzahligen Wert verwenden.
select * from users where active = 1 -- Does not work select * from users where active = '1' -- Works
quelle
where active
,where not active
. Siehe postgresql.org/docs/8.2/static/functions-logical.htmlMS SQL 2008 kann auch die Zeichenfolgenversion true oder false verwenden ...
select * from users where active = 'true' -- or -- select * from users where active = 'false'
quelle
In SQL Server würden Sie im Allgemeinen verwenden. Ich weiß nichts über andere Datenbank-Engines.
select * from users where active = 0
quelle
Ich persönlich bevorzuge die Verwendung von char (1) mit den Werten 'Y' und 'N' für Datenbanken, die keinen nativen Typ für Boolesche Werte haben. Buchstaben sind benutzerfreundlicher als Zahlen, die davon ausgehen, dass diejenigen, die sie lesen, jetzt wissen, dass 1 wahr und 0 falsch ist.
'Y' und 'N' werden auch bei Verwendung von (N) Hibernate gut zugeordnet.
quelle
PostgreSQL unterstützt boolesche Typen, sodass Ihre SQL-Abfrage in PostgreSQL perfekt funktioniert.
quelle
Wenn Sie SQLite3 verwenden, achten Sie auf Folgendes:
Es dauert nur 't' oder 'f'. Nicht 1 oder 0. Nicht WAHR ODER FALSCH.
Habe gerade auf die harte Tour gelernt.
quelle