在Android上使用SQLite时,我必须使用execSQL进行更新吗?

时间:2016-05-07 19:55:53

标签: android sqlite

所以我的问题是这个。

在现有的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?

1 个答案:

答案 0 :(得分:3)

好的,我会把这个留在这里给那些像我一样盲目的人,并错过了显而易见的事情:

你可以想象并使用SQliteDatabase.compileStatement(String)或as Bob Malooga如此友好地指出使用SQLiteDatabase.rawQuery (String, String[])