MySql报错1093-FROM句で更新用のターゲットテーブルxxxを指定できない

前に書かれているのは、私は「海への航海」で、このニックネームは私の名前と彼女の名前に由来しています。テクノロジー、オープンソース、プログラミングが大好きです。技术是开源的、知识是共享的

このブログはあなた自身の学習の小さな要約と記録ですJavaアルゴリズムに興味があるなら、あなたは私のダイナミクスをフォローすることができ、私たちは一緒に学びます。

用知识改变命运,让我们的家人过上更好的生活

MySQLは開発中にこのようなエラーに遭遇しました1093 - You can’t specify target table 'person' for update in FROM clause。以下では、分析の例としてLikouのトピックを取り上げます。

1.主題の出典

+----+------------------+
| Id | Email            |
+----+------------------+
| 1  | john@example.com |
| 2  | bob@example.com  |
| 3  | john@example.com |
+----+------------------+

たとえば、クエリを実行すると、上記のPersonテーブルは次の行を返します。

+----+------------------+
| Id | Email            |
+----+------------------+
| 1  | john@example.com |
| 2  | bob@example.com  |
+----+------------------+

ヒント

  • SQLを実行すると、出力はPersonテーブル全体になります。
  • deleteステートメントを使用します。

出典:LeetCode
リンク:https ://leetcode-cn.com/problems/delete-duplicate-emails
著作権はLeetCode が所有しています商用転載については、正式な許可書にご連絡ください。非商用転載については、出典を明記してください。

2、エラー分析

ここに画像の説明を挿入

これは、MySQLではテーブルの更新と削除を同時に行うことができないためです。つまり、クエリの結果に基づいて変更または削除することはできません。

3、解決策

使用中间表将查询结果再次SELECT即可避免这个报错。

ここに画像の説明を挿入


記事が少し役に立ったと思われる場合は、WeChatで「程序猿编程を検索して初めて読んでください

レンガを動かす道で、私たちは一緒に頑張って、両手で私たちの未来をノックアウトします!

ここに画像の説明を挿入


レベルが限られているため、必然的にこのブログには不十分な点があります。

おすすめ

転載: blog.csdn.net/weixin_43570367/article/details/108733195