SQLite
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> SQLite

Xóa nhiều hàng bằng cách sử dụng ID?

Khi bạn cung cấp một chuỗi duy nhất là whereArgs , một chuỗi duy nhất kết thúc trong lệnh SQL, như thể bạn đã viết điều này:

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

Điều này sẽ so sánh từng _id giá trị so với giá trị '1,2,42' , tất nhiên là không hoạt động.

Nếu bạn sử dụng ba điểm đánh dấu tham số và cung cấp ba chuỗi trong whereArgs mảng, bạn sẽ kết thúc bằng ba chuỗi, như thế này:

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

Điều này chỉ hoạt động khi _id cột có mối quan hệ số nguyên, đúng với cột được khai báo là INTEGER PRIMARY KEY, nhưng không đúng với trường hợp chung.

API cơ sở dữ liệu Android không cho phép các tham số truy vấn có bất kỳ loại nào ngoài chuỗi. Khi sử dụng số nguyên, bạn chỉ nên chèn chúng trực tiếp (như trong câu trả lời của 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. Không thể truy cập cơ sở dữ liệu SQLite được điền sẵn bằng PhoneGap / Cordova trong Android

  2. Android SQLiteDB không hoàn thành việc thêm giá trị

  3. Android- setPeriodic cho JobScheduler sẽ không hoạt động

  4. Cột _ID không tồn tại lỗi mặc dù nó tồn tại trong bảng

  5. Có thể di chuyển từ Realm sang Sqlite không?