Java Android Sqlite:检查表中是否存在行
我有一个字符串数组,需要在插入它们之前检查它们是否存在于表中,以避免重复。什么是SQL查询,如何替换以下值?:) 表名:产品图片 数据库名称:产品数据库 我理解此声明将在以下情况下起作用:Java Android Sqlite:检查表中是否存在行,java,android,sql,sqlite,Java,Android,Sql,Sqlite,我有一个字符串数组,需要在插入它们之前检查它们是否存在于表中,以避免重复。什么是SQL查询,如何替换以下值?:) 表名:产品图片 数据库名称:产品数据库 我理解此声明将在以下情况下起作用: "SELECT * FROM ' + product_pics + ' WHERE PID=' + pid +'" 如果产品存在或不存在,我如何正确地设置格式以使方法返回?就像 Cursor cursor = null; String sql ="SELECT PID FROM "+TableName+
"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,限制为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
}
}不要忘记cursor.close()和db.close()可能的重复项
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();
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
}