0

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

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

但是我不知道如何将其设置为类似于以下内容的位置

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

2 回答 2

1
     update characters 
          set active = case
                          when active = 1 then '0'
                          else 1
                         end
   WHERE id= '" . $id . "';
于 2012-10-24T05:12:09.653 回答
1

如果等于,下面的查询将设置active为 1 ,对于其他行将 设置为 0。_name$_POST['char_name']active

$query = "
    UPDATE characters 
    SET active = IF(_name = '".$_POST['char_name']."', '1', '0')
    WHERE id = '$id'
";

有关更多详细信息,请参阅IF() MySQL 函数

于 2012-10-24T05:26:05.177 回答