使用同一数据库-Android中的另一个列值初始化Sqlite数据库中的一个列值

时间:2014-01-15 07:40:47

标签: android sql sqlite

我想在Android Sqlite数据库中使用同一数据库中的其他列值初始化一个列值。 然而,我使用此功能来执行此操作:

 public void InitializeColumnValues(){
    String sql = "UPDATE \""+ DATABASE_TABLE + "\" SET \"" + Column2 +"\" = \"" + Column1 + "\"";
    db.rawQuery(sql, null); 

}

但是,不幸的是它不适合我!它的结构有问题吗? 可能在Android Sqlite数据库中我需要根据id值逐个初始化列中的每个值!

有没有办法以尽可能少的时间做到这一点?

任何帮助将不胜感激,
谢谢......

1 个答案:

答案 0 :(得分:4)

您的问题可以通过使用“db.execSQL(sql)”而不是使用“db.rawQuery(sql,null)”来解决,并且在编写所需查询时也不需要使用引号“”“。 ,完整且经过测试的功能如下:

 public void InitializeColumnValues() {
    String sql = "UPDATE "+ DATABASE_TABLE + " SET " + Column2  +" = " + Column1;
    db.execSQL(sql);
    db.close();
 }

请注意, execSQL rawQuery API之间的主要区别是:

public void execSQL (String sql)

执行一个非SELECT的SQL语句或任何其他返回数据的SQL语句。

public Cursor rawQuery (String sql, String[] selectionArgs)

运行提供的SQL并在结果集上返回Cursor。

我希望答案很有用并且适合你。