Esta pregunta y la respuesta seleccionada fueron útiles para mí para entender cómo comprobar fácil y rápidamente si sale un récord. Sin embargo, he visto muchos lugares que recomiendan no usar rawQuery
debido a la posibilidad de inyección SQL. (Por ejemplo, rawQuery Vs. database.query)
Así que aquí es lo que me decidí por:
public boolean Exists(String searchItem) {
String[] columns = { COLUMN_NAME };
String selection = COLUMN_NAME + " =?";
String[] selectionArgs = { searchItem };
String limit = "1";
Cursor cursor = db.query(TABLE_NAME, columns, selection, selectionArgs, null, null, null, limit);
boolean exists = (cursor.getCount() > 0);
cursor.close();
return exists;
}
No sé si esto es tan rápido como la respuesta seleccionada o no, pero después de investigar esto parece ajustarse a las convenciones recomendadas de Android más.
actualización
ahora recomiendo @ respuesta de yuku, pero no voy a eliminar las minas todavía porque todavía quiero guiar a las personas lejos de usar consultas primas.
Mi respuesta aquí: http://stackoverflow.com/questions/27597922/android-sqlite-check-if-row-exists-in-table/43849296#43849296 –