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?

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

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.