所以我的问题是这个。
在现有的android框架中,有没有办法使用ContentValues执行UPDATE,其中SET值是表达式?
现在我想要实现的是SQL更新,其中一列更新为其他两列的值,如下所示:
UPDATE myTable SET columnA = columnB + columnC WHERE rowId = 5
这个有效,没问题。但是我无法通过ContentValues和android文档explicitly says看到任何方法:
void execSQL(String sql,Object [] bindArgs)
执行一个非SELECT / INSERT / UPDATE / DELETE的SQL语句。
...
对于UPDATE语句,请改用以下任何一种语法。
update(String,ContentValues,String,String [])
updateWithOnConflict(String,ContentValues,String,String [],int)
那么可以使用现有的更新方法完成,还是我将不得不忽略文档并继续使用execSQL?
答案 0 :(得分:3)
好的,我会把这个留在这里给那些像我一样盲目的人,并错过了显而易见的事情:
你可以想象并使用SQliteDatabase.compileStatement(String)或as Bob Malooga如此友好地指出使用SQLiteDatabase.rawQuery (String, String[])