我正在尝试更新用户表,仅当 $_POST[value] 不为 null 时。如果为 null,则应保留列中已有的值。
$query = "UPDATE `Users`
SET FirstName = COALESCE(:firstName, FirstName), LastName = ISNULL(:lastName, LastName), City = :city, State = :state WHERE Email = :email";
$stmt = $dbh->prepare($query);
$stmt->bindValue(':firstName', $firstName);
$stmt->bindValue(':lastName', $lastName);
$stmt->bindValue(':city', $city);
$stmt->bindValue(':state', $state);
$stmt->bindValue(':email', $email);
$stmt->execute();
我尝试使用COALESCE函数替换FirstName列的值,使用ISNULL函数替换LastName列的值。然而,COALESCE会将我的值替换为空白(NULL),这正好与我想要的相反;而ISNULL似乎不起作用。