Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo incluir un booleano en una cláusula sql lite where

Esto me está volviendo loca. Siento que lo he intentado todo y no obtengo resultados. ¿Cómo puedo incluir un condicional booleano en una cláusula where en sql lite?

He intentado estos

"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" 

Nada. Incluso intenté incluir "true" como el whereArgs en una función de consulta.

¿Alguien hizo esto antes?

4 Solutions collect form web for “Cómo incluir un booleano en una cláusula sql lite where”

SQLite no tiene una clase de almacenamiento booleana separada. En su lugar, los valores booleanos se almacenan como enteros 0 (false) y 1 (true).

Fuente: SQLite

El primero entonces suena correcto.

 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> 

No hay verdadero booleano en SQLIte. Si ha creado con SQLite Administrator, aquí es cómo hacerlo:

 Select * from table where col is 'Y' 

Esto funciona bien "Select * from table where col = 'true'"

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.