使用PHP和WHERE规范的MySQL查询
通过这个更新查询,如果id在chk_列表中,那么我将checked设置为1。如果id不在列表中,我想将chk_list=0 在何处设置if之后,有没有简单的方法?您可以使用函数来确定要设置的值。请执行以下操作:使用PHP和WHERE规范的MySQL查询,php,mysql,Php,Mysql,通过这个更新查询,如果id在chk_列表中,那么我将checked设置为1。如果id不在列表中,我想将chk_list=0 在何处设置if之后,有没有简单的方法?您可以使用函数来确定要设置的值。请执行以下操作: $update = "UPDATE data SET checked = (IF(id IN ($chk_list), 1, 0))"; $qry = $db->query($update); 注意:请注意相关问题如果要将checked显式设置为1或0,则If应位于设置区域中 请
$update = "UPDATE data SET checked = (IF(id IN ($chk_list), 1, 0))";
$qry = $db->query($update);
注意:请注意相关问题如果要将checked显式设置为1或0,则If应位于设置区域中 请注意,将所有表更新到MySQL默认情况下阻止这种情况发生的程度是非常危险的,您应该将安全更新设置为0
UPDATE data SET checked = IF(id IN ($chk_list), 1,0)
这个案子怎么样?不确定是否整洁,但似乎它会起作用:
UPDATE data SET checked=
CASE
WHEN id IN ($chk_list) THEN 1
WHEN id NOT IN ($chk_list) THEN 0
END
我想知道何时在列表集1中,何处未设置0@raulpaulsen请检查更新的答案。使用if函数if$qry{echo update Failed;}是否正确?$update=update data SET checked=IFid在$chk_列表中,1,0;或者缺少什么?请在执行$update之前回显它,并查看您得到了什么。尝试使用phpmyadmin或mysql workbench直接运行原始查询并检查其输出您只需将字段的默认值设置为0!你就不能不进来吗?这两个答案中的任何一个都有效。不过我很好奇,为什么要更新表上的所有记录?我从来没有见过这样的场景Hi Raul,你能澄清一下你的问题吗?也许可以添加一些上下文来说明您试图在表中实现什么。在php代码中使用它是可以的吗?它工作得很好,但我不知道它是否是proper@raulpaulsen很高兴它对你有用。祝你好运,伙计:快乐coding@raulpaulsen如果与php一起使用,我看不出有任何问题
UPDATE data SET checked=
CASE
WHEN id IN ($chk_list) THEN 1
WHEN id NOT IN ($chk_list) THEN 0
END