2016-07-07 1 views
-1

이 코드는 내 테이블에서 하나의 레코드 만 삭제합니다. 달성하고자하는 것은 주어진 문자열 전화 값을 가진 모든 레코드를 삭제하는 것입니다. 새로운 SQlite에 약간의 도움을 많이 주시면 감사하겠습니다. 미리 감사드립니다. 내가 successfuly이 코드로 모든 기록을 삭제SQlite 특정 문자열 값을 가진 모든 행을 삭제

public void delSmsData(int id){ 
    String deleteQuery = "DELETE FROM "+TABLE_LO_SMSDATA+" WHERE _id="+id+""; 
    SQLiteDatabase db = this.getWritableDatabase(); 
    db.execSQL(deleteQuery); //delete single row by ID in a table 
    db.execSQL("vacuum"); 
    db.close(); 
    Log.e("Debug", "Successful delete of message with id no. " + id); 
} 

:

이 코드 것은 성공적으로 하나의 기록을 삭제합니다. 도와 주신 분들께 감사드립니다.

String CREATE_LO_SMSDATA_TABLE = "CREATE TABLE " 
      +TABLE_LO_SMSDATA+"(" 
      +KEY_ID+" INTEGER PRIMARY KEY AUTOINCREMENT," 
      +KEY_EMAIL+" TEXT," 
      +KEY_TARGETNAME+" TEXT," 
      +KEY_SMSTYPE+" TEXT," 
      +KEY_PHONE+" TEXT," 
      +KEY_CONTACTNAME+" TEXT," 
      +KEY_SMSBODY+" TEXT," 
      +KEY_DATE+" TEXT"+")"; 
    db.execSQL(CREATE_LO_SMSDATA_TABLE); 
+0

테이블 구조는 무엇인가? '_phone'이 기본 키입니까? –

+0

@AdamForbis 제가 질문을 업데이트했습니다. – Draeko

+1

'... WHERE _phone = ' "+ phone +"' "' –

답변

1

내가 완전히 이해하지 않습니다

public void delAllSmsByPhone(String phone){ 
    String deleteQuery = "DELETE FROM "+TABLE_LO_SMSDATA+" WHERE _phone='"+phone+"'"; 
    SQLiteDatabase db = this.getWritableDatabase(); 
    db.execSQL(deleteQuery); 
    db.execSQL("vacuum"); 
    db.close(); 
} 

이 내 테이블 구조입니다. 코드를 실행하려고 시도 했습니까?

이 코드는 절대적으로 올바른 접근 방식이다 올바른 접근 방식

없습니다. DELETE은 하나의 행 수만 삭제할 수 있습니다. WHERE 절이 참인 모든 행을 삭제합니다.

증명 :

 
sqlite> .tables 
sms 
sqlite> .schema sms 
CREATE TABLE `sms` (
    `_id` INTEGER PRIMARY KEY AUTOINCREMENT, 
    `_phone` TEXT 
); 
sqlite> SELECT * FROM sms; 
1|+79271234567 
2|+79271234567 
3|+79213983722 
4|+79271234567 
5|+78450738422 
6|+79271234567 
7|+77432739417 
8|+74673627246 
9|+79271234567 
10|+79271234567 
sqlite> DELETE FROM sms WHERE _phone='+79271234567'; 
sqlite> SELECT * FROM sms; 
3|+79213983722 
5|+78450738422 
7|+77432739417 
8|+74673627246 
+0

예, 잊어 버렸습니다. 전화가 암호화되었습니다. 감사합니다 ... 어디서 전화를 받았 는가 ... 전화 + '+ 전화 +' '". 이. – Draeko