SQLite - เพิ่มมูลค่าตามจำนวนที่กำหนด


94

เป็นไปได้ไหมที่จะเพิ่มค่าบางอย่างในตารางด้วยตัวเลขที่แน่นอนโดยไม่อ่านค่าสุดท้ายและหลังจากนั้นอัปเดต

เช่นฉันมีคอลัมน์ "product" และ "quality": product: iLamp quality: 50

ฉันต้องการเพิ่ม (หรือลด) คุณภาพด้วย x เพื่อให้บรรลุสิ่งนี้ฉันกำลังอ่านค่าสุดท้าย (50) ก่อนเพิ่มหรือลดแล้วเขียนกลับ

มีวิธีโดยตรงในการทำงานนี้หรือไม่?

คำตอบ:


207

ตัวอย่าง 1 (สำหรับทุกแถว):

UPDATE Products SET Price = Price + 50

ตัวอย่าง 2 (สำหรับแถวเฉพาะ):

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

ตัวอย่างที่ 3 (ทั่วไป):

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

ที่ไหน:

  • {Table} - ชื่อตาราง
  • {Column} - ชื่อคอลัมน์
  • {Value} - ตัวเลขที่ควรเพิ่มหรือลดค่าของคอลัมน์
  • {Condition} - เงื่อนไขบางประการถ้ามี

3
FROM เป็นคีย์เวิร์ด SQLite? เอกสารดูเหมือนจะไม่ระบุ sqlite.org/lang_update.html
Jason S

วิธีนี้สามารถทำได้ใน python ด้วย sqlite3 ฉันต้องการอัปเดต col + = 1 โดยที่ในคอลัมน์แรก =?
st.ph.n

@ user3358205: เหมือนที่ผู้ชายคนนั้นพูด ...UPDATE table SET col = col + 1 WHERE first_column = ?
Mumbleskates

หากต้องการเพิ่มรายการเกณฑ์ให้ทำสิ่งที่ชอบUPDATE Products SET Price = Price + 50 WHERE [ProductID] IN [1,3,56,78,44,23,8989,23]
zelusp

@ คอนสแตนตินสามารถเพิ่มค่าแถวทั้งหมดของคอลัมน์ทีละน้อยได้หรือไม่? บอกว่าแถวที่มีอยู่คือ "R, S, T" แล้วควรเป็น "R1, S2, T3" ข้อเสนอแนะใด ๆ ?
CoDe
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.