Android Sqlite:检查表中是否存在行

我有一个字符串数组,如果在插入它们之前存在于表中则需要检查,以避免重复。 什么是SQL查询以及如何将以下值替换为它? 🙂

ArrayList NewProducts= new ArrayList(); 

我的产品型号:

 public class Product { public Product() { } public String PID = "pid"; public String getPID() { return PID; } public void setPID(String pID) { PID = pID; } public String getNAME() { return NAME; } public void setNAME(String nAME) { NAME = nAME; } public String PID = "pid"; public String NAME = "name"; } 

表名: product_pics

数据库名称: product_db

我理解这句话会有效:

 "SELECT * FROM ' + product_pics + ' WHERE PID=' + pid +'" 

如何正确格式化,以便在产品存在时方法返回?

只是喜欢

  Cursor cursor = null; String sql ="SELECT PID FROM "+TableName+" WHERE PID="+pidValue; cursor= db.rawQuery(sql,null); Log("Cursor Count : " + cursor.getCount()); if(cursor.getCount()>0){ //PID Found }else{ //PID Not Found } cursor.close(); 

使用SELECT EXIST仅将结果限制为1或0,LIMIT 1使查询执行得更快:

 fun exists(): Boolean { var sql = "SELECT EXISTS (SELECT * FROM $tableName WHERE $someColumn = $someValue LIMIT 1)" val cursor = db?.rawQuery(sql, null) cursor?.moveToFirst() return if (cursor?.getInt(0) == 1) { cursor?.close() true } else { cursor?.close() false } 

}