ホームページ >バックエンド開発 >PHPチュートリアル >mysqlで同じフィールドデータを持つ2つのレコードを削除するにはどうすればよいですか?
たとえば、name 列と eamil 列があり、データベースにレコードが存在する場合、これら 2 つの列の値は同じです (これに対応する 2 つの列の値について話しています)値が同じである場合、他の冗長な列は自動的に削除され、最新の列 (つまり、ID が最も小さい列) が保持されます。 ID は自動インクリメントされる主キーです)
———————————————— ————
つまり、テーブルにはその名前のレコードが 2 つあります。どちらも管理者で、メールアドレスは abc@163.com です。どちらか一方だけを保持したいのですが、どうすればよいですか?
<code class="language-sql"><span class="k">delete</span> <span class="k">from</span> <span class="n">test</span> <span class="k">where</span> <span class="n">id</span> <span class="k">not</span> <span class="k">in</span><span class="p">(</span>
<span class="k">select</span> <span class="n">name</span><span class="p">,</span><span class="n">email</span><span class="p">,</span><span class="k">max</span><span class="p">(</span><span class="n">id</span><span class="p">)</span> <span class="k">from</span> <span class="n">test</span>
<span class="k">group</span> <span class="k">by</span> <span class="n">name</span><span class="p">,</span><span class="n">email</span> <span class="k">having</span> <span class="n">id</span> <span class="k">is</span> <span class="k">not</span> <span class="k">null</span><span class="p">)</span>
</code>
Data: