2013-05-18 28 views
5

Tôi muốn xóa một số hàng của bảng info so sánh một bảng khác type, mã của tôi như sau. Tôi không nhận được bất kỳ lỗi hoặc ngoại lệ nào mà vẫn không thể xóa dữ liệu. Xin gợi ý cho tôiKhông thể thực thi xóa truy vấn đúng cách bằng cách sử dụng rawQuery

String query = "delete from info where _id in " + 
        "(select a._id " + 
        " from info a, type b," + 
        " where a.t_id = b._id and b.type_name = 'Petrol' )"; 

try{ 
    database.rawQuery(query,null); 
}catch (Exception e){ 
    e.printStackTrace(); 
} 
+1

Bạn có thử chạy phần SELECT để xem những gì nó sẽ trả về? – nicopico

+0

nó trả về ID, Tôi đã kiểm tra thực hiện toàn bộ truy vấn bằng Sqlite, có hoạt động của nó đúng cách. Tôi có thể xóa trong SQLITE –

+0

Bạn có thể cho tôi biết đầu ra của 'select a._id" + "từ thông tin a, loại b," + "trong đó a.t_id = b._id và b.type_name = 'Petrol '''? – Lucifer

Trả lời

11

Phương pháp SQLiteDatabase.rawQuery() có nghĩa là cho truy vấn -> SELECT tuyên bố.

Để sửa đổi dữ liệu của bạn bằng SQL thô, bạn cần sử dụng SQLiteDatabase.execSQL().

1
database.rawQuery(query,null).moveToFirst(); 

thay vì

database.rawQuery(query,null); 
Các vấn đề liên quan