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

  • emimusic

    emimusic

    10 Mart 2006
  • vgeller1

    vgeller1

    22 Kasım 2009
  • wwjoshdu

    wwjoshdu

    18 ŞUBAT 2011