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?

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

  • Android SQLite ON CONFLICT UPDATE es posible?
  • Cómo implementar la función recursiva de sqlite3 en dispositivos Android
  • Conexión de SQLite se filtró aunque todo se cerró
  • GreenDAO - clave primaria en varias columnas
  • Android Sqlite SQLiteDiskIOException: error de E / S de disco (código 1290) SQLITE_IOERR_DIR_FSYNC
  • ¿Es posible usar Couch DB o MySql o cualquier otro DB en Android?
  • BeginTransaction (), endTransaction () y setTransactionSuccessful (). ¿Qué hacen exactamente?
  • ¿Qué hará un SQLiteCursor si una columna es nula?
  • Cómo obtener el tamaño de la base de datos sqlite actual o el tamaño del paquete en Android?
  • Copia de seguridad y restauración de la base de datos SQLite a sdcard
  • Cómo probar proveedores de contenido en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.