2014-09-26 30 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

起初,检测您是否需要更新或插入。

比写插入或更新请求。