SORU
16 Ocak 2009, Cuma


Birden çok öğe için YİNELENEN KEY UPDATE .. TAKIN

Böyle bir şey yapmak istiyorum

INSERT INTO t (t.a, t.b, t.c) 
VALUES ('key1','key2','value') 
ON DUPLICATE KEY UPDATE 
t.c = 'value';
INSERT INTO t (t.a, t.b, t.c) 
VALUES ('key1','key3','value2') 
ON DUPLICATE KEY UPDATE 
t.c = 'value2';

t.a ve t.b anahtarları. Bu gayet iyi çalışıyor ama ikinci ekleme bir hata alıyorum. Mod böyle bir sorgu çalışıyor ancak bağımsız olarak dışarı yorum olarak sorgu sonuçlarını yazdırır gibi sorgular çalışıyor tahmin ediyorum.

Böyle bir şey çok iyi olurdu ama her madde için farklı değerlere sahip olmak gerekir. Ben bunu tercih ederim ama her değer için Güncelleştirme değerini nasıl değiştiririm, emin değilim.

INSERT INTO t (t.a, t.b, t.c)
VALUES ('key1','key2','value'), ('key1','key3','value2')
ON DUPLICATE KEY UPDATE
t.c = ???

Sorun soru işaretleri var, ben her ekleme/güncelleme doğru değeri olacak, bu yüzden orada ne koymak gerekir? Eğer bir değeri buraya koyarsam belli ki tüm alanları bu değeri alacak.

Eğer başka bir yol varsa orada bir "varsa, yoksa Ekle" iki anahtar ile birden çok alanda, diğer fikirler için de. ben sorgu güncelleme Her sorgu ayrı ayrı (phpMyAdmin gibi?) kaçabilirim sanırım ama gerçekten bunu önlemek istiyorum çok sorgular bir sürü olacak.

CEVAP
16 Ocak 2009, Cuma


DEĞERLERİ() işlevini kullanın

INSERT INTO t (t.a, t.b, t.c)
VALUES ('key1','key2','value'), ('key1','key3','value2')
ON DUPLICATE KEY UPDATE
t.c = VALUES(t.c)

http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html bkz

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Feel The Electricity!

    Feel The Ele

    20 ŞUBAT 2010
  • sinumatic

    sinumatic

    19 Aralık 2006
  • TechSmartt

    TechSmartt

    29 Aralık 2010