SQLite多列更新语法错误

时间:2019-04-21 10:16:19

标签: android sqlite

我正在尝试使用SQLiteDatabase.execSQL方法执行以下SQL查询:

String sql="UPDATE vehicle SET (name,haltpattern,type1) = ( SELECT name,haltpattern,type1 FROM v_vehicle WHERE vehicle.code = v_vehicle.code) WHERE vehicle.code IN  ( SELECT vehicle.code FROM vehicle);"
db.execSQL(sql);

我遇到以下错误: android.database.sqlite.SQLiteException:靠近“(”:语法错误(代码1):,同时编译:UPDATE vehicle SET(名称,haltpattern,type1)=(从v_vehicle选择SELECT名称,haltpattern,type1 WHERE vehicle.code = v_vehicle .code)WHERE vehicle.code IN(从vehicle选择SELECT vehicle.code);

当我使用SQLiteStudio运行相同的SQL时,它运行良好。 请帮助

谢谢 塔伦(Tarun)

2 个答案:

答案 0 :(得分:0)

SQLiteStudio是否具有类似“自动更正”的功能?

我不确定,但是maby是“(”和“ Select”之间的空格: 更新车辆设置(名称,haltpattern,type1)= (S ELECT名称,haltpattern,type1 FROM v_vehicle WHERE vehicle.code = v_vehicle.code)WHERE vehicle.code IN(从车辆选择SELECT vehicle.code) ;

答案 1 :(得分:0)

@Shawn(“如果使用的是旧版本,则必须单独更新每个列。UPDATEblah SET foo = 1,bar =2。”),我的SQLite版本不支持多个列更新,因此我分别更新了列。