0

これはどこにも見つからないようですが、1 つのクエリに基づいて複数の行を更新しようとしています。IF パラメータを実行してすべての文字を非アクティブに設定し、次にクエリを実行して 1 つの文字をアクティブに設定し、1 つの文字のみを選択できるようにします。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

以下のクエリは、等しい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 に答える
1
     update characters 
          set active = case
                          when active = 1 then '0'
                          else 1
                         end
   WHERE id= '" . $id . "';
于 2012-10-24T05:12:09.653 に答える