我正在尝试使用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)
答案 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版本不支持多个列更新,因此我分别更新了列。