Php 我可以避免在INSERT查询中用空值覆盖列吗?

Php 我可以避免在INSERT查询中用空值覆盖列吗?,php,mysql,null,insert,Php,Mysql,Null,Insert,在我的php页面中,我对同一个表有两个不同的查询,如果我对两列有两个不同的值,则会执行第一个查询,但在某些情况下,我只能使用第一个值,我可以使用相同的查询还是应该使用两个不同的查询 // 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 (colum

在我的php页面中,我对同一个表有两个不同的查询,如果我对两列有两个不同的值,则会执行第一个查询,但在某些情况下,我只能使用第一个值,我可以使用相同的查询还是应该使用两个不同的查询

// 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

因此,我可以使用新VAL执行INSERT语句,而不使用空值覆盖旧VAL吗?

INSERT将永远不会覆盖旧记录(尽管如果尝试插入打破唯一键约束的记录可能会失败)。因此,即使
$value_2
为空,您也可以使用第一个查询,并获得相同的结果

如果要覆盖记录,则需要使用
UPDATE
语句。在这种情况下,如果愿意,您只能覆盖一列。有关更新语法,请参阅


还有
REPLACE
在使用唯一键的情况下覆盖旧行,但听起来这与您想要做的相反。

好的,谢谢,我会记住插入和更新之间的区别,cya