SQLite - Wert um eine bestimmte Zahl erhöhen

93

Ist es möglich, einen bestimmten Wert in einer Tabelle um eine bestimmte Zahl zu erhöhen, ohne den letzten Wert zu lesen und anschließend zu aktualisieren?

dh ich habe Spalten "Produkt" und "Qualität": Produkt: iLamp Qualität: 50

Ich möchte die Qualität um x erhöhen (oder verringern). Um dies zu erreichen, lese ich zuerst den letzten Wert (50), erhöhe oder verkleinere ihn und schreibe ihn zurück.

Gibt es einen direkten Weg, um diese Aufgabe zu erledigen?

Ilya Suzdalnitski
quelle

Antworten:

200

Probe 1 (für alle Zeilen):

UPDATE Products SET Price = Price + 50

Beispiel 2 (für eine bestimmte Zeile):

UPDATE Products SET Price = Price + 50 WHERE ProductID = 1

Probe 3 (generisch):

UPDATE {Table} SET {Column} = {Column} + {Value} WHERE {Condition}

Wo:

  • {Table} - Tabellenname
  • {Column} - Spaltenname
  • {Value} - eine Zahl, um die der Wert der Spalte erhöht oder verringert werden soll
  • {Condition} - eine Bedingung, falls vorhanden
Konstantin Tarkus
quelle
3
FROM ist ein SQLite-Schlüsselwort? Die Dokumente scheinen dies nicht anzuzeigen. sqlite.org/lang_update.html
Jason S
Wie geht das in Python mit sqlite3? Ich muss eine Spalte + = 1 aktualisieren, wobei in der ersten Spalte =?
st.ph.n
@ user3358205: Wie der Mann sagt ...UPDATE table SET col = col + 1 WHERE first_column = ?
Mumbleskates
Um eine Liste von Kriterien zuUPDATE Products SET Price = Price + 50 WHERE [ProductID] IN [1,3,56,78,44,23,8989,23]
erhöhen
@Konstantin ist es möglich, alle Zeilenwerte einer Spalte inkrementell zu erhöhen? Angenommen, vorhandene Zeilen sind "R, S, T", dann sollte es "R1, S2, T3" sein. Irgendein Vorschlag ?
CoDe