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

重複した MySQL レコードを削除し、1 つだけを保持します

<p>重複した MySQL レコードを削除する方法 (ただし 1 つだけ保持)</p> <p>皆さん、こんにちは。同じ ID のレコードが複数あり、重複したレコードを削除して 1 つだけ保持したいという問題があります。 mysql ステートメントの使用に関するアイデアはありますか? </p> <p>レコードと重複の数を確認するために次のステートメントがありますが、delete ステートメントを使用すると機能しません。</p> <pre class="brush:php;toolbar:false;">SELECT Eメール、 COUNT(メール) から 連絡先 メールでグループ化 HAVING COUNT(email) > 1; <p>このステートメントを使用しますが、削除されるのは重複レコード 1 つだけです: </p> <pre class="brush:php;toolbar:false;">DELETE FROM wp_options WHERE option_id=5 limit 1;</pre> <p>バッチ処理する方法はありますか? </p> <p>更新: 次のステートメントを使用していますが、重複レコードをすべて保持せずに削除します: </p> <pre class="brush:php;toolbar:false;">xhi_options から削除 WHERE オプション ID IN (SELECT オプション ID FROM (SELECT オプション ID FROM xhi_options GROUP BY オプション ID HAVING COUNT(option_id) > 1) AS T)

P粉916760429P粉916760429396日前441

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

  • P粉776412597

    P粉7764125972023-08-26 00:32:58

    削除ステートメントでは、limit 1 オプションを使用しました。これは、1 つのレコードのみを削除することを意味します。

    コードを次のように修正してみてください:

    リーリー

    返事
    0
  • P粉621033928

    P粉6210339282023-08-26 00:15:25

    このメソッドを使用すると、最小の ID 値を持つ行を保持できます

    リーリー

    これはサンプル リンクです リンク 1

    または、>< に変更して、最も高い ID を維持することもできます

    リーリー

    これはサンプル リンクです リンク 2

    返事
    0
  • キャンセル返事