Alan null içeriyorsa veya 0 Sadece eğer MYSQL alanını güncelleştirmek

1 Cevap php

Ben tablo zaten Rname o aynı giriş değeri varsa daha sonra da (Rname benzersiz bir dizin olduğu gibi) tüm iyi yapar ki bu satırı güncelleştirmek için, bir tabloya veri eklemek istiyorum.

Ama GÜNCELLEME ben alan zaten bir şey (NULL) yoksa yalnızca alanları güncelleştirmek istiyorum.

INSERT INTO $table  
(`rDate`, `rName`, `rFormat`, `rText`) VALUES 
(CURRENT_TIMESTAMP, 'name3', 'formate22') ON DUPLICATE KEY UPDATE 
 rFormat=VALUES(rFormat), 
 IF('rFiles'=NULL,rFiles=VALUES(rFiles), rFiles=VALUES(rSizeMB)), 
 rText=VALUES(rText)

Ayrıca bu ben ne yapıyorum yapmak için en iyi nedir? Ben o zaman burada gösterilen alanların yaklaşık iki katı miktarda var gibi, biraz repudiative görünüyor, ben sadece soru için aşağı kesti.

1 Cevap

Bu deneyin:

...
ON DUPLICATE KEY UPDATE
rFormat=VALUES(rFormat),
rFiles=IF(ISNULL(rFiles), VALUES(rFiles), VALUES(rSizeMB)),
rText=VALUES(rText);

Ben biraz (IF) gibi daha gelişmiş MySQL şeyler kullanmadıysanız, bu yüzden bu konuda olumlu değilim, ama bu konuda doğru olmalıdır. Önemli kısmı IF tarafından döndürülen değere rFiles ayardır.