Това, че параметрите на заявката могат да бъдат само низове, е ужасна грешка в дизайна в API на базата данни на Android.
Въпреки това, което се казва в документацията, трябва да използвате параметри само за действителни стойности на низове; целочислените стойности могат безопасно да бъдат вградени директно в SQL низа. (За блобове трябва да използвате функция, която приема ContentValues
.)
Моля, имайте предвид, че докато SQLite използва динамично въвеждане, стойностите от различни типове не сравняване на равни в повечето случаи (SELECT 42='42';
връща 0
).Има някои случаи, в които SQLite прави автоматично преобразува стойности поради афинитет на типа (във вашия случай това би се случило, ако сте декларирали id
колона като INTEGER
), но това е доста противоинтуитивно, така че не трябва да се разчита на него.