使用此更新查询,如果id
位于chk_list
中,那么我设置了checked=1
。我想如果id
不在列表中以设置chk_list=0
$update = "UPDATE data SET checked=1 WHERE id IN($chk_list)";
$qry = $db->query($update);
在哪里设置是否有任何简单方法?
答案 0 :(得分:2)
您可以使用IF()函数来确定要设置的值。请执行以下操作:
$update = "UPDATE data SET checked = (IF(id IN ($chk_list), 1, 0))";
$qry = $db->query($update);
答案 1 :(得分:1)
如果您想将 checked 显式设置为1或0,则if应该在设置区域中 请注意,将所有表更新到MySQL默认阻止这种情况的程度非常危险,并且应将安全更新设置为0
UPDATE data SET checked = IF(id IN ($chk_list), 1,0)
答案 2 :(得分:1)
使用CASE
怎么办?不确定是否整洁,但似乎可以使用:)
UPDATE data SET checked=
CASE
WHEN id IN ($chk_list) THEN 1
WHEN id NOT IN ($chk_list) THEN 0
END