検索

ホームページ  >  に質問  >  本文

MySQL の update 句で同じターゲット テーブルの使用を禁止する

「employee」という名前のテーブルがあります。テーブル作成コードは次のとおりです:

リーリー

テーブルの内容は次のとおりです:

リーリー

今度は「e_id」を更新したいと思います。まずテーブル内に同じ e_id があるかどうかを確認します。テーブル内にない場合は、指定された e_id を持つ行のみを更新します。それ以外の場合は更新しません。 。 したがって、私のアップグレードクエリは次のとおりです:

リーリー

しかし、次のエラーが発生します:

エラー 1093 (HY000): FROM 句で更新するターゲット テーブル "employee" を指定できません 次のクエリを試してみました:

リーリー

しかし、これもテーブルの更新に失敗し、次の結果が表示されます:

リーリー

次のコードも試しました:

リーリー

しかし、これでもテーブルの更新に失敗し、次の結果が得られます。 クエリは OK、影響を受ける行は 0 (0.00 秒) 一致した行: 0 変更: 0 警告: 0 助けてください。よろしくお願いします。

P粉982009874P粉982009874238日前380

全員に返信(1)返信します

  • P粉604669414

    P粉6046694142024-04-03 10:18:58

    NULL は一部の人が期待しているものとは異なる動作をします NOT IN: https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=24c176ff4d4e2c52309aaca14cc121c5 それで聞いてくださいサブの WHERE e_id IS NOT NULL。また、HAVING COUNT(*) >= 1 は常に 1 以上の値を返すため、削除できます...

    リーリー

    https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=2a0b036a7d1db9138e3ab29af3d346f8

    返事
    0
  • キャンセル返事