簡體   English   中英

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

[英]Android Sqlite: Check if row exists in table

我有一個字符串數組,如果在插入它們之前存在於表中則需要進行檢查,以避免重復。 什么是SQL查詢以及如何將以下值替換為它? :)

ArrayList<Product> NewProducts= new ArrayList<Product>();

我的產品型號:

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
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM