2010-11-11 44 views
6

Bunu bir UPDATE ifadesiyle başarılı bir şekilde yaptım, ancak bir REPLACE değil.Arttırma alanı değeri DEĞİŞTİRME

Kullanıcı teslim aldığında sık kullandığınız öğeleri bir mysql tablosunda kaydediyorum.

Tablo Favs: Ben çalışıyorum

USER (int) 
ITEM (int) 
COUNT (int default 0) 

SQL şudur: herhangi bir hata atmak etmese

REPLACE INTO favs (user,item,count) VALUES ('1','3', count + 1) 

o da değeri arttırmak için görünmüyor.

Bu mümkün mü? Teşekkür ederim.

cevap

15

Bunun yerine takılmamış gibi görünüyor. manual Gönderen:

Sen geçerli satırdan değerlere atıfta edemez ve yeni satırda bunları kullanın. (bir atama gibi SET COL_NAME = COL_NAME + ödev COL_NAME SET eşdeğerdir, yani 1, sağ taraftaki sütun adının referans varsayılan (COL_NAME) olarak kabul edilir = STANDART kullanın COL_NAME) + 1.

Düzenleme:

Ancak ... YİNELENEN UPDATE INSERT başarmak istediğiniz şeyi yapabilir:

INSERT INTO favs (user, item) VALUES (2, 3) 
    ON DUPLICATE KEY UPDATE count = count + 1; 
+0

Tamam w hayır orries Ben hemen sonra ayrı bir UPDATE beyanı yapacağız. Teşekkür ederim. – Titan

+0

Lütfen benim düzenlemeye bakın - yapmaya çalıştığınız şey bu mu? Eğer öyleyse, ayrı değiştirme ve güncelleme ifadelerinden daha güvenli ve daha verimli olacaktır. – Thilo

+1

harika bir şekilde çalışıyor, çünkü çalışma için deyimden 'SET'i kaldırmanız gerekiyor. – Titan

İlgili konular