To, że parametry zapytania mogą być tylko ciągami, jest strasznym błędem projektowym w interfejsie API bazy danych Androida.
Pomimo tego, co mówi dokumentacja, powinieneś używać parametrów tylko dla rzeczywistych wartości ciągów; wartości całkowite można bezpiecznie osadzać bezpośrednio w ciągu SQL. (W przypadku obiektów blob musisz użyć funkcji, która akceptuje ContentValues
.)
Należy pamiętać, że chociaż SQLite używa dynamicznego typowania, wartości różnych typów nie porównaj równe w większości przypadków (SELECT 42='42';
zwraca 0
).Istnieją przypadki, w których SQLite tak automatycznie konwertować wartości ze względu na powinowactwo typów (w Twoim przypadku miałoby to miejsce, gdy zadeklarowałeś id
kolumna jako INTEGER
), ale jest to raczej sprzeczne z intuicją, więc nie należy na nim polegać.