2012-04-05 11 views
1

Ich habe die folgende Abfrage in Android SQLiteAndroid SQLite Äquivalent der angegebenen Update-Abfrage

UPDATE player SET rank=rank+1 WHERE rank >= 3; 

Hier Rang auszuführen ist der Spaltenname von INTEGER Typ.

Ich weiß über Update-Methode

update(tablename, values, whereClause, whereArgs); 

I Spieler als erste Argument übergeben wird, Rang> = 3 als 3. Argument und null als letzte Argument aber ich Ich bin nicht in der Lage zu finden, was zu passieren ist 2. Argument. Laut der Dokumentation sollte es ein Objekt von ContentValues ​​ sein.

so habe ich die Aufgabe, als

ContentValues values = new ContentValues(); 
values.put("rank",?????); 

Ich bin verwirrt über das, was den Wert für Rang Schlüssel zu setzen, die eine Spalte in meinem Tisch ist. Bitte machen Sie mich, was als Wert zu übergeben zu Methode put() Werte

Antwort

2

Ich glaube Update Methode ist nicht One-Size-Fit-Alle Verfahren. Also ich denke, Sie müssen rawQuery() verwenden, um diese Art der SQL-Ausführung zu erreichen. zum Beispiel:

db.rawQuery("UPDATE player SET rank=rank+1 WHERE rank >= 3;", null); 

oder vielleicht ExecSQL verwenden wie gesagt von el7r

5

alternativ können Sie exec verwenden, und führen Sie Ihre SQL-Befehl

db.execSQL("UPDATE player SET rank=rank+1 WHERE rank >= 3"); 

es die Update-Methode zu tun mit, Sie müssen den aktuellen Rang in einer Variablen mit Cursor abrufen, und dann tun Sie das + Ding manuell "Strom + 1"

+0

Arbeitete für mich. +1 – VikramV