SQLite - zwiększ wartość o określoną liczbę


94

czy można zwiększyć określoną wartość w tabeli o określoną liczbę bez odczytywania ostatniej wartości, a następnie ją aktualizować?

tj. mam kolumny „produkt” i „jakość”: produkt: iLamp jakość: 50

Chcę zwiększyć (lub zmniejszyć) jakość o x. Aby to osiągnąć, najpierw czytam ostatnią wartość (50), zwiększam lub zmniejszam ją i zapisuję z powrotem.

Czy istnieje bezpośredni sposób na wykonanie tego zadania?

Odpowiedzi:


207

Próbka 1 (dla wszystkich rzędów):

UPDATE Products SET Price = Price + 50

Próbka 2 (dla określonego wiersza):

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

Próbka 3 (ogólna):

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

Gdzie:

  • {Table} - Nazwa tabeli
  • {Column} - Nazwa kolumny
  • {Value} - liczba, o którą należy zwiększyć lub zmniejszyć wartość kolumny
  • {Condition} - jakiś warunek, jeśli występuje

3
FROM to słowo kluczowe SQLite? Dokumenty wydają się tego nie wskazywać. sqlite.org/lang_update.html
Jason S

jak można to zrobić w Pythonie za pomocą sqlite3? Muszę zaktualizować col + = 1, gdzie w pierwszej kolumnie =?
św.f. n

@ user3358205: Tak jak mówi mężczyzna ...UPDATE table SET col = col + 1 WHERE first_column = ?
Mumbleskates

Aby zwiększyć listę kryteriów , zrób coś takiegoUPDATE Products SET Price = Price + 50 WHERE [ProductID] IN [1,3,56,78,44,23,8989,23]
zelusp

@Konstantin czy można przyrostowo zwiększać wartość wszystkich wierszy kolumny? Powiedzmy, że istniejące wiersze to „R, S, T”, to powinno być „R1, S2, T3”. Jakieś sugestie ?
CoDe
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.