更新多行

时间:2012-10-24 05:01:47

标签: php

我似乎无法在任何地方找到它,但我正在尝试根据一个查询更新多行。我希望执行IF参数以将所有字符设置为非活动状态,然后运行查询以将一个字符设置为活动状态,以便使其只能选择一个字符。 IE

UPDATE characters SET active='1'
WHERE name = '_POST[char_name]';

但我无法找到如何将其设置为

的内容
    IF active='1' 
{
    UPDATE characters SET active='0'
    WHERE id= '" . $id . "';
}

2 个答案:

答案 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