[Greeklug] διαγραφή διπλοεγγραφών από mysql

mixasgr mixas.gre στο gmail.com
Σαβ 3 Δεκ 2011 03:05:03 EET


Στις 03/12/2011 02:07 πμ, ο/η Sakis Xakoustos έγραψε:
> Καλημέρα....
>
> είναι στον ίδιο πίνακα και 
>
> είναι σε ξεχωριστά πεδία το καθένα ανά σειρά-εγγραφή
>
> 	test στο gmail 	30-10-2011
>
>
> 	test στο gmail 	1-1-2009
>
>
> Αν υπάρχει διπλοεγγραφή στο email, όπως το παραπάνω, τότε θέλω να
> σβήσω το email που έχει καταχωρηθεί με έτος 2009
>
>
>
>
> Στις 3 Δεκεμβρίου 2011 1:45 π.μ., ο χρήστης mixasgr
> <mixas.gre στο gmail.com <mailto:mixas.gre στο gmail.com>> έγραψε:
>
>     Στις 03/12/2011 12:41 πμ, ο/η Sakis Xakoustos έγραψε:
>>     Η βάση είχε κάποια emails μέσα και πρόσθεσα και εγώ μερικά.
>>
>>     Όταν πρόσθετα τα email που είχα, δυστυχώς δεν πρόσεξα για
>>     διπλοεγγραφές. 
>>     Τα εμαιλ μου λοιπόν μπήκαν με την ημερομηνία 2009 (έτσι το
>>     έκανα εσκεμμένα για να τα ελέγχο)
>>     Στη βάση έχω:
>>
>>     περίπτωση 1)
>>      test στο gmail 30-10-*2011 *και test στο gmail.com
>>     <mailto:test στο gmail.com> 1-1-*2009*
>>
>>     περίπτωση 2)
>>      test στο gmail 30-10-*2011 *και test στο gmail.com
>>     <mailto:test στο gmail.com> 1-1-*2009 *και test στο gmail.com
>>     <mailto:test στο gmail.com> 1-1-*2009*
>>
>>     περίπτωση 3)
>>     test στο gmail.com <mailto:test στο gmail.com> 1-1-*2009 *και
>>     test στο gmail.com <mailto:test στο gmail.com> 1-1-*2009*
>>
>>
>>     Όπως βλέπετε υπάρχουν διάφορες περιπτώσεις.... 
>>     Θέλω να μείνει μόνο ένα email για κάθε χρήστη.
>>     Δλδ αν υπάρχει το test@ *2011 *τότε να μείνει αυτό. Αλλιώς να
>>     μείνει μόνο ένα από το test@ *2009*
>>
>>     Θέλω οι εντολές να γίνουν πάνω στο ίδιο το table, γιατί υπάρχουν
>>     συσχετισμοί με άλλα και αν το σβήσουμε και το ξαναφτιάξουμε
>>     πιθανόν να γίνουν μπερδέματα.
>>
>>     Με βολεύει ακόμα και η εντολή select. Μετά από εκεί θα τα μαρκάρω
>>     από την phpmysql και θα τα κάνω delete (με το κουμπάκι!)
>>
>>
>
>     Καλημέρα φίλε Σάκη,
>
>     έχω καταλάβει γενικά το τι θέλεις να κάνεις, ωστόσο για να μπορέσω
>     ίσως να σε βοηθήσω περισσότερο θα ήταν καλό να εξηγήσεις την δομή
>     της βάσης σου κ πως τα δεδομένα συνδέονται μεταξύ τους.
>
>     Τα δεδομένα είναι χύμα σε 1 πεδίο;
>     sakis
>     	test στο gmail 30-10-2011
>     test στο gmail.com <mailto:test στο gmail.com> 1-1-2009
>     nikos
>     	test στο gmail 30-10-2011
>     test στο gmail.com <mailto:test στο gmail.com> 1-1-2009
>
>
>
>     είναι σε ξεχωριστά πεδία το καθένα ανά σειρά-εγγραφή;
>     sakis
>     	test στο gmail 	30-10-2011
>
>     sakis
>     	test στο gmail 	1-1-2009
>
>
>     είναι πάνω στην ίδια εγγραφή του χρήστη σε διαφορετικά πεδία-στήλες;
>     sakis
>     	test στο gmail 	30-10-2011 	test στο gmail.com <mailto:test στο gmail.com>
>     1-1-2009
>
>
>     είναι σε ξεχωριστούς πίνακες;
>
>

Είναι αργά κ δεν σκέφτομαι καθαρά...
αλλά νομίζω μπορείς να το λύσεις ως εξής:

Για τις περιπτώσεις 1)2) για να κρατήσεις τις μοναδικές εγγραφές με μόνο
2011:

SELECT user, email, date
FROM pinakas_tade
WHERE date LIKE '%2011%'
GROUP BY email

και για την περίπτωση 3) ανάποδα τις μοναδικές εγγραφές που δεν έχουν 2011:
SELECT user, email, date
FROM pinakas_tade
WHERE date ΝΟΤ LIKE '%2011%'
GROUP BY email


-------------- επόμενο μέρος --------------
Ένα συνημένο HTML καθαρίστηκε...
URL: <http://lists.greeklug.gr/pipermail/greeklug/attachments/20111203/d430bb5e/attachment.html>


Περισσότερες πληροφορίες για την Greeklug λίστα ηλεκτρονικού ταχυδρομείου