2014-09-26 26 views
-1

我有一個數據庫插入的sql語句,它的工作。以android的方式插入格式數據庫

String sql = "INSERT OR REPLACE INTO " + TABLE_USER 
       + "(" + KEY_ID + ", " + KEY_EMAIL + ", " + KEY_FIRST_NAME + ", " + KEY_LAST_NAME + ", " + KEY_AVATAR + ", " + KEY_AVATAR_UID + ") " 
       + "VALUES (" 
       + 1 + ",'" + userInfo.getEmail() + "','" + userInfo.getName() + "','" + userInfo.getLastName() + "','" + userInfo.getAvatar() + "'," 
       + "(SELECT " + KEY_AVATAR_UID + " FROM " + TABLE_USER + " WHERE " + KEY_ID + " = " + 1 + "));"; 


database.execSQL(sql); 
database.close(); 

我想更新id爲1的用戶的所有字段,但保留頭像uid。
我該如何寫這種清潔劑,或者我該如何改進這種說法?

謝謝。

+0

http://bobby-tables.com/about.html – Simon 2014-09-26 15:20:31

+0

使用'database.update()' – 323go 2014-09-26 15:35:24

回答

2

只需刪除SELECT語句。

INSERT OR REPLACE將首先嚐試INSERT。
如果失敗(現有記錄),它將執行UPDATE。

0

我會使用Android的原生方式!

ContentValues mValues = new ContentValues(); 
mValues.put(YOUR_COLUMN, YOUR_VALUE); 


YOUR_SQLITEDATABASE_OBJECT.update(your_table,mValues, YOUR_QUERY, YOUR_QUERY_PARAMS); 

Where YOUR_QUERY:ex。 "Time = ?"

其中YOUR_QUERY_PARAMS:前new String[]{"9-11"}

0

起初,檢測您是否需要更新或插入。

比寫插入或更新請求。