SQLite
 sql >> Teknologi Basis Data >  >> RDS >> SQLite

Hapus beberapa baris menggunakan ID?

Saat Anda memberikan satu string sebagai whereArgs , satu string berakhir di perintah SQL, seolah-olah Anda telah menulis ini:

... WHERE _id IN ('1,2,42')

Ini akan membandingkan setiap _id nilai terhadap nilai '1,2,42' , yang tentu saja tidak berfungsi.

Jika Anda menggunakan tiga penanda parameter dan memberikan tiga string di whereArgs array, Anda akan mendapatkan tiga string, seperti ini:

... WHERE _id in ('1','2','42')

Ini hanya berfungsi bila _id kolom memiliki afinitas bilangan bulat, yang benar untuk kolom yang dideklarasikan sebagai KUNCI UTAMA INTEGER, tetapi tidak dalam kasus umum.

API database Android tidak mengizinkan parameter kueri memiliki tipe apa pun kecuali string. Saat menggunakan bilangan bulat, Anda harus memasukkannya secara langsung (seperti dalam jawaban ianhanniballake):

String whereClause = getIdColumn() + " IN (" + TextUtils.join(",", ids) + ")";


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLite KECUALI Operator

  2. Apa yang harus saya pilih - JSON atau SQLite?

  3. UnsatisfiedLinkError dalam metode asli

  4. Android SQLite Query - Mendapatkan 10 catatan terbaru

  5. SQLite JSON_TREE()