Διαγραφή διπλών γραμμών

Συζητήσεις για την βάση δεδομένων MySQL και το phpMyAdmin

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
ioannisls
Δημοσιεύσεις: 83
Εγγραφή: 11 Ιαν 2012 15:50
Επικοινωνία:

Διαγραφή διπλών γραμμών

Δημοσίευση από ioannisls » 14 Ιούλ 2014 11:37

Θα ήθελα να ρωτήσω το εξής:
έχω στο phpMyAdmin δημιουργήσει ένα πίνακα ο οποίος γεμίζει από ένα αρχείο php. Από χαζομάρα μου όμως κάποια insert τα κάνει περισσότερες φορές από μία. ποια εντολή θα μπορούσα να χρησιμοποιήσω ώστε να διαγράψει τις επιπρόσθετες γραμμές, χωρίς να χρειαστεί να τρέχω ξανά το php που είναι υπερβολικά χρονοβόρο;

Άβαταρ μέλους
fatsouls32
Δημοσιεύσεις: 34
Εγγραφή: 18 Δεκ 2012 10:10

Διαγραφή διπλών γραμμών

Δημοσίευση από fatsouls32 » 14 Ιούλ 2014 11:47

Το παρακάτω σβήνει τα duplicates και κρατάει αυτό με το μεγαλύτερο id που έχεις στη βάση σου. Αντικαθιστάς τα table, primary_key και field με τα δικά σου.

DELETE n1 FROM table n1, table n2 WHERE n1.primary_key < n2.primary_key AND n1.field = n2.field

ioannisls
Δημοσιεύσεις: 83
Εγγραφή: 11 Ιαν 2012 15:50
Επικοινωνία:

Διαγραφή διπλών γραμμών

Δημοσίευση από ioannisls » 14 Ιούλ 2014 11:53

Επειδή δεν έχω ένα μήνα που ασχολούμαι με την sql
table= Είναι η ονομασία του πίνακα
primary_key = Είναι η ονομασία της στήλης π.χ. id
field = Τι είναι;
http://luckyweek.eu/
Στατιστικά για το στοιχηματικό ποδόσφαιρο και τα τυχερά παιχνίδια

Άβαταρ μέλους
fatsouls32
Δημοσιεύσεις: 34
Εγγραφή: 18 Δεκ 2012 10:10

Διαγραφή διπλών γραμμών

Δημοσίευση από fatsouls32 » 14 Ιούλ 2014 14:04

field είναι το όνομα του πεδίου που γίνεται η σύγκριση. Πχ. name

Απάντηση

Επιστροφή στο “MySQL”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης