我有一个数据库插入sql语句来完成它的工作。
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 :(得分:2)
只需删除SELECT语句即可。
INSERT OR REPLACE将首先尝试INSERT 如果失败(现有记录),它将进行更新。
答案 1 :(得分:0)
我会使用Android的原生方式!
ContentValues mValues = new ContentValues();
mValues.put(YOUR_COLUMN, YOUR_VALUE);
YOUR_SQLITEDATABASE_OBJECT.update(your_table,mValues, YOUR_QUERY, YOUR_QUERY_PARAMS);
YOUR_QUERY:ex。 "Time = ?"
YOUR_QUERY_PARAMS:ex new String[]{"9-11"}
答案 2 :(得分:0)
首先,检测您是否需要更新或插入。
比写入插入或更新请求。