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?

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

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.