将字段设置为 1,但如果它已经是 1,则将其设置为 NULL
Set field to 1, but if it's already 1 set it to NULL
我想用 1 更新 table 中的一行,但如果它已经是 1,请将其设置为 NULL
,我如何最有效地检查该行是否已经是 1?
<?php
session_start();
$ai = $_POST['ai'];
$set = NULL or 1 depending on row fav is NULL or 1
include ("connect.php");
$sql = $con->prepare('UPDATE list SET fav = ? WHERE id=?');
$sql->bind_param("si",$set, $ai);
$sql->execute();
$sql->close();
?>
我想你想要一个 case
表达式:
update list
set fav = (case when fav = 1 then null else 1 end)
where id = ?
如果 fav
为 1
,则将其设置为 null
,否则将其设置为 1
。
此查询接受单个参数,即您要 update
的行的 id
。
看来您只需要在 1 和 NULL 之间切换。
UPDATE list SET fav = IF(fav IS NULL, 1, NULL) WHERE id=?
我想用 1 更新 table 中的一行,但如果它已经是 1,请将其设置为 NULL
,我如何最有效地检查该行是否已经是 1?
<?php
session_start();
$ai = $_POST['ai'];
$set = NULL or 1 depending on row fav is NULL or 1
include ("connect.php");
$sql = $con->prepare('UPDATE list SET fav = ? WHERE id=?');
$sql->bind_param("si",$set, $ai);
$sql->execute();
$sql->close();
?>
我想你想要一个 case
表达式:
update list
set fav = (case when fav = 1 then null else 1 end)
where id = ?
如果 fav
为 1
,则将其设置为 null
,否则将其设置为 1
。
此查询接受单个参数,即您要 update
的行的 id
。
看来您只需要在 1 和 NULL 之间切换。
UPDATE list SET fav = IF(fav IS NULL, 1, NULL) WHERE id=?