如果 id 在 chk_list 然后我开始 checked=1 . 我想如果 id 不在要设置的列表中 chk_list=0 ```$update = "UPDATE data SET checked=1 WHERE id IN($chk_list)";
id
chk_list
checked=1
chk_list=0
$qry = $db->query($update);
有没有什么简单的方法来设置if?
brccelvz1#
可以使用if()函数来确定要设置的值。执行以下操作:
$update = "UPDATE data SET checked = (IF(id IN ($chk_list), 1, 0))"; $qry = $db->query($update);
note:pleaseuse prepared 防止sql注入相关问题的语句
v8wbuo2f2#
如果要显式地将checked设置为1或0,那么if应该在set区域中注意,将所有表更新到mysql默认情况下阻止这种情况发生的程度是非常危险的,因此应该将safe updates设置为0
UPDATE data SET checked = IF(id IN ($chk_list), 1,0)
wvyml7n53#
你觉得这个怎么样 CASE ? 不确定是否很整洁,但似乎可以:)
CASE
UPDATE data SET checked= CASE WHEN id IN ($chk_list) THEN 1 WHEN id NOT IN ($chk_list) THEN 0 END
3条答案
按热度按时间brccelvz1#
可以使用if()函数来确定要设置的值。执行以下操作:
note:pleaseuse prepared 防止sql注入相关问题的语句
v8wbuo2f2#
如果要显式地将checked设置为1或0,那么if应该在set区域中注意,将所有表更新到mysql默认情况下阻止这种情况发生的程度是非常危险的,因此应该将safe updates设置为0
wvyml7n53#
你觉得这个怎么样
CASE
? 不确定是否很整洁,但似乎可以:)