假设活动的是“布尔字段”(tiny int,具有0或1)
# Find all active users
select * from users where active
# Find all inactive users
select * from users where NOT active
换句话说,可以将“ NOT”运算符直接应用于布尔字段吗?
假设活动的是“布尔字段”(tiny int,具有0或1)
# Find all active users
select * from users where active
# Find all inactive users
select * from users where NOT active
换句话说,可以将“ NOT”运算符直接应用于布尔字段吗?
Answers:
SQL中的布尔值是位字段。这意味着1或0。正确的语法是:
select * from users where active = 1 /* All Active Users */
要么
select * from users where active = 0 /* All Inactive Users */
SELECT “model".* FROM “model" WHERE “boolean_column" = ‘f'
工作
使用Postgres,您可以使用
select * from users where active
要么
select * from users where active = 't'
如果要使用整数值,则必须将其视为字符串。您不能使用整数值。
select * from users where active = 1 -- Does not work
select * from users where active = '1' -- Works
where active
,where not active
。见postgresql.org/docs/8.2/static/functions-logical.html
MS SQL 2008还可以使用字符串版本的true或false。
select * from users where active = 'true'
-- or --
select * from users where active = 'false'
PostgreSQL支持布尔类型,因此您的SQL查询将在PostgreSQL中完美地工作。
如果您使用SQLite3提防:
只需要“ t”或“ f”。不是1或0。不是TRUE或FALSE。
刚刚学会了艰辛的方法。