Entfernen Sie doppelte MySQL-Einträge und behalten Sie nur einen
P粉916760429
P粉916760429 2023-08-25 15:38:04
0
2
493
<p>So entfernen Sie doppelte MySQL-Einträge (aber behalten nur einen)</p> <p>Hallo zusammen, ich habe ein Problem. Ich habe mehrere Datensätze mit derselben ID und möchte doppelte Datensätze entfernen, aber nur einen behalten. Irgendwelche Ideen zur Verwendung von MySQL-Anweisungen? </p> <p>Ich habe diese Anweisung, um die Anzahl der Datensätze und Duplikate anzuzeigen, aber sie funktioniert bei mir nicht, wenn ich die delete-Anweisung verwende: </p> <pre class="brush:php;toolbar:false;">SELECT Email, COUNT(E-Mail) AUS Kontakte GRUPPE NACH E-Mail HAVING COUNT(email) > 1;</pre> <p>Ich verwende diese Anweisung, aber sie entfernt nur einen doppelten Datensatz: </p> <pre class="brush:php;toolbar:false;">DELETE FROM wp_options WHERE option_id=5 limit 1;</pre> <p>Gibt es eine Möglichkeit zur Stapelverarbeitung? </p> <p>Update: Ich verwende diese Anweisung, aber sie entfernt alle doppelten Datensätze, ohne einen beizubehalten: </p> <pre class="brush:php;toolbar:false;">LÖSCHEN AUS xhi_options WHERE option_id IN (SELECT option_id FROM (SELECT option_id VON xhi_options GROUP BY option_id HAVING COUNT(option_id) > 1) AS T)</pre></p>
P粉916760429
P粉916760429

Antworte allen(2)
P粉776412597

在你的删除语句中,你使用了limit 1选项,这意味着你只会删除一条记录。

尝试修复你的代码,像这样:

DELETE FROM wp_options WHERE option_id=5 limit (dupl_rec_count - 1);
P粉621033928

您可以使用此方法保留具有最低id值的行

DELETE e1 FROM contacts e1, contacts e2 WHERE e1.id > e2.id AND e1.email = e2.email;

这是一个示例链接 链接1

或者您可以将>更改为<以保留最高id

DELETE e1 FROM contacts e1, contacts e2 WHERE e1.id < e2.id AND e1.email = e2.email;

这是一个示例链接 链接2

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!