SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

selectionArgs no SQLiteQueryBuilder não funciona com valores inteiros em colunas


Que os parâmetros de consulta só podem ser strings é um erro de design horrível na API do banco de dados Android.

Apesar do que a documentação diz, você deve usar parâmetros apenas para valores de string reais; valores inteiros podem ser incorporados com segurança diretamente na string SQL. (Para blobs, você deve usar uma função que aceite ContentValues .)

Observe que, embora o SQLite use tipagem dinâmica, valores de tipos diferentes não comparar igual na maioria dos casos (SELECT 42='42'; retorna 0 ).Existem alguns casos em que o SQLite faz converter valores automaticamente devido à afinidade de tipo (no seu caso, isso aconteceria se você declarasse o id coluna como INTEGER ), mas isso é bastante contra-intuitivo, por isso não deve ser invocado.