Ben INSERT sorgusu üzerinde bir NULL değeri ile bir sütun üzerine yazılmasını önlemek miyim?

1 Cevap php

Ben iki sütun için iki farklı değerleri varsa ben aynı tabloda benim php sayfasında iki farklı sorgu var, birincisi idam edilir, ancak bazı durumlarda, ben sadece ilk değerini kullanabilirsiniz, ben aynı sorgu ile yapabilirsiniz ya da ben iki farklı sorgu kullanmanız gerekir?

// query 1
"INSERT INTO my_table (column_1, column_2) VALUES ('$value_1', '$value_2')";

// second query, used if $value_2 is null
"INSERT INTO my_table (column_1) VALUES ('$value_1')";

// can I do something like this without use a SELECT for column_2 before the INSERT?
$value_2 = null;
"INSERT INTO my_table (column_1, column_2) VALUES ('$value_1', '$value_2')";
// ======================================= new value === ^   |    ^ === mantain old value because it's null

bu yüzden null değere sahip eski vals üzerine yazmak olmadan yeni vals ile bir INSERT deyimi yürütebilirsiniz?

1 Cevap

Bir INSERT eski bir rekor (Eğer benzersiz bir anahtar kısıtlaması tatili bir kayıt eklemek için çalışın eğer başarısız olabilir gerçi) üzerine asla. Yani sadece $value_2 boş olsa bile, ilk sorguyu kullanın ve aynı sonuçları elde edebilirsiniz.

Eğer kayıtları üzerine istiyorsanız, bir UPDATE deyimi kullanmak gerekecektir. Eğer istedim Bu durumda, sadece bir tek sütun üzerine yazabilirsiniz. http://dev.mysql.com/doc/refman/5.0/en/update.html UPDATE sözdizimi için bkz.

Orada da REPLACE benzersiz tuşları durumunda eski satırları üzerine yazmak, ama bu yapmak istediğiniz ne tersidir gibi geliyor.