SQLite - tingkatkan nilai dengan angka tertentu

94

apakah mungkin untuk meningkatkan nilai tertentu dalam tabel dengan angka tertentu tanpa membaca nilai terakhir dan kemudian memperbaruinya?

yaitu saya memiliki kolom "produk" dan "kualitas": produk: kualitas iLamp: 50

Saya ingin meningkatkan (atau menurunkan) kualitas sebesar x. Untuk mencapai ini, saya pertama-tama membaca nilai terakhir (50), menambah atau mengurangi, dan menuliskannya kembali.

Apakah ada cara langsung untuk menyelesaikan tugas ini?

Ilya Suzdalnitski
sumber

Jawaban:

206

Contoh 1 (untuk semua baris):

UPDATE Products SET Price = Price + 50

Contoh 2 (untuk baris tertentu):

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

Contoh 3 (generik):

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

Dimana:

  • {Table} - nama tabel
  • {Column} - nama kolom
  • {Value} - angka dimana nilai kolom harus ditambah atau dikurangi
  • {Condition} - beberapa kondisi jika ada
Konstantin Tarkus
sumber
3
FROM adalah kata kunci SQLite? Dokumen tampaknya tidak menunjukkannya. sqlite.org/lang_update.html
Jason S
bagaimana ini bisa dilakukan dengan python dengan sqlite3? Saya perlu memperbarui col + = 1 di mana di kolom pertama =?
st.ph.n
@ user3358205: Seperti yang dikatakan pria itu ...UPDATE table SET col = col + 1 WHERE first_column = ?
Mumbleskates
Untuk menambah daftar kriteria , lakukan sesuatu sepertiUPDATE Products SET Price = Price + 50 WHERE [ProductID] IN [1,3,56,78,44,23,8989,23]
zelusp
@Konstantin apakah ini mungkin untuk menaikkan semua nilai baris kolom secara bertahap? Katakanlah jika baris yang ada adalah "R, S, T" maka harus 'R1, S2, T3'. Ada saran ?
CoDe