我似乎无法在任何地方找到它,但我正在尝试根据一个查询更新多行。我希望执行IF参数以将所有字符设置为非活动状态,然后运行查询以将一个字符设置为活动状态,以便使其只能选择一个字符。 IE
UPDATE characters SET active='1'
WHERE name = '_POST[char_name]';
但我无法找到如何将其设置为
的内容 IF active='1'
{
UPDATE characters SET active='0'
WHERE id= '" . $id . "';
}
答案 0 :(得分:1)
update characters
set active = case
when active = 1 then '0'
else 1
end
WHERE id= '" . $id . "';
答案 1 :(得分:1)
如果active
等于_name
,则下面的查询会将$_POST['char_name']
设置为1,并且对于其他行,将active
设置为0。
$query = "
UPDATE characters
SET active = IF(_name = '".$_POST['char_name']."', '1', '0')
WHERE id = '$id'
";
有关详细信息,请参阅IF() MySQL function。