重複した 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)