활성이 "부울 필드"라고 가정합니다 (작은 정수, 0 또는 1 포함).
# Find all active users
select * from users where active
# Find all inactive users
select * from users where NOT active
즉, "NOT"연산자를 부울 필드에 직접 적용 할 수 있습니까?
활성이 "부울 필드"라고 가정합니다 (작은 정수, 0 또는 1 포함).
# Find all active users
select * from users where active
# Find all inactive users
select * from users where NOT active
즉, "NOT"연산자를 부울 필드에 직접 적용 할 수 있습니까?
답변:
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'
SQLite3를 사용하는 경우주의하십시오.
't'또는 'f'만 필요합니다. 1 또는 0이 아닙니다. TRUE 또는 FALSE가 아닙니다.
어려운 방법을 배웠습니다.