如何在sql lite where子句中包含一个布尔值

这真让我抓狂。 我觉得我已经尝试了一切,没有结果。 我怎样才能在sql lite中的where子句中包含一个布尔条件?

我已经尝试过这些

"Select * from table where col = 1" "Select * from table where col = '1'" "Select * from table where col = true" "Select * from table where col = 'true'" "Select * from table where col = 'True'" "Select * from table where col is True" 

没有。 我甚至尝试在查询函数中包含“true”作为whereArgs。

有人做过这个吗?

Solutions Collecting From Web of "如何在sql lite where子句中包含一个布尔值"

SQLite没有单独的布尔存储类。 相反,布尔值被存储为整数0(假)和1(真)。

来源: SQLite

第一个听起来是正确的。

 SQLite version 3.7.4 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> CREATE TABLE "stack_test" ("id" INTEGER, "bool_col" boolean); sqlite> insert into stack_test values(1,'t'); sqlite> insert into stack_test values(2,'f'); sqlite> insert into stack_test values(3,'1'); sqlite> insert into stack_test values(4,'0'); sqlite> insert into stack_test values(5,1); sqlite> insert into stack_test values(6,0); sqlite> insert into stack_test values(7,banana); Error: no such column: banana sqlite> insert into stack_test values(7,'banana'); sqlite> .headers on sqlite> select * from stack_test; id|bool_col 1|t 2|f 3|1 4|0 5|1 6|0 7|banana sqlite> select * from stack_test where bool_col=t; Error: no such column: t sqlite> select * from stack_test where bool_col='t'; id|bool_col 1|t sqlite> select * from stack_test where bool_col=0; id|bool_col 4|0 6|0 sqlite> select * from stack_test where bool_col=1; id|bool_col 3|1 5|1 sqlite> select * from stack_test where bool_col=true; Error: no such column: true sqlite> select * from stack_test where bool_col=banana; Error: no such column: banana sqlite> select * from stack_test where bool_col='banana'; id|bool_col 7|banana sqlite> sqlite> .schema stack_test CREATE TABLE "stack_test" ("id" INTEGER, "bool_col" boolean); sqlite> 

SQLIte中没有真正的布尔值。 如果你使用SQLitepipe理员创build,下面是你如何做到这一点:

 Select * from table where col is 'Y' 

这效果很好“select*从表,其中col ='真正'”