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 }
}