我試圖從數組中的數據庫中獲取值或數據。從數組中獲取數據庫中的特定值
public Cursor checkExistence(){
Cursor c=null;
String[] values={"headache","cold"};
SQLiteDatabase db= getReadableDatabase();
String query="SELECT * FROM "+TABLE_SYMPTOMS+" WHERE "+COLUMN_SYMP+" IN ("+toArrayRep(values)+")";
c=db.rawQuery(query,null);
Log.i("From Cursor","Cursor Count : " + c.getCount());
if(c.getCount()>0){
String val= c.getString()
Log.i("From Cursor","No insertion");
}else{
Log.i("From Cursor","Insertion");
}
db.close();
return c;
}
public static String toArrayRep(String[] in) {
StringBuilder result = new StringBuilder();
for (int i = 0; i < in.length; i++) {
if (i != 0) {
result.append(",");
}
result.append("'" + in[i] + "'");
}
return result.toString();
}
在String values={"headache","cold"}
中,頭痛存在但數據庫中不存在冷。從上面的代碼,光標返回Count=1
這是count>0
,因此我不能插入到table.I想知道我可以獨立檢查是否存在單個數據,並且不存在的將插入到表中因此,在這種情況下,「冷」將能夠插入到表格中。
對於你的邏輯,'c.getCount()== values.length' - >所有記錄在數據庫中。如果c.getCount()小於values.length,那麼一些記錄不在db中。雖然,沒有邏輯,你可以做唯一插入1 sql:http://stackoverflow.com/questions/2779823/sqlite-query-to-insert-a-record-if-not-exists – Emma