login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Dubbele entries verwijderen uit MySQL database

Offline Acario - 03/08/2010 18:19
Avatar van AcarioNieuw lid Goedendag allen,

Ik heb momenteel in mijn MySQL woordenboek-database enkele honderden woorden inclusief vertalingen staan (met auto-increment).

Echter, sommige rijen bevatten dezelfde woorden inclusief dezelfde vertalingen, denk aan:
id woord vertaling
-----------------
1 zand sand
2 boom tree
3 bloem flower
4 boom tree
5 vogel bird

(dat zijn dus 4 rijen en 3 kolommen)

Zoals te zien is, rij 2 en rij 4 zijn qua inhoud hetzelfde (behalve de id-waarde). Dat wil ik dus niet hebben in de database. Ik wil slechts dat ieder woord (en vertaling) slechts één keer voorkomt.

Weet iemand met welke code ik dit in MyPHPAdmin kan oplossen? Dus alle dubbele entries verwijderen? Kan deze code ook hoofdletter-ongevoelig worden gemaakt?

7 antwoorden

Gesponsorde links
Offline vinTage - 03/08/2010 18:36
Avatar van vinTage Nieuw lid Met 'select distinct rownaam' kan je alle unieke rijen ophalen, om ze vervolgens te dumpen in een nieuwe 'juiste' tabel.
Bedankt door: Acario
Offline Stijn - 03/08/2010 19:58
Avatar van Stijn PHP expert Dan moet je ervoor zorgen dat je zoiets niet kan hebben. Maak een unieke sleutel met als combinatie die drie kolommen.
Offline Acario - 03/08/2010 21:13
Avatar van Acario Nieuw lid
vinTage schreef:
Met 'select distinct rownaam' kan je alle unieke rijen ophalen, om ze vervolgens te dumpen in een nieuwe 'juiste' tabel.


Maar gooit de id-code dan geen roet in het eten? De rijen mogen wel gelijk zijn qua inhoud, iedere rij heeft een eigen id-waarde... of kun je er ook voor zorgen dat SELECT DISTINCT daar niet naar kijkt maar puur naar de inhoud van de rijen (exclusief id)?
Offline vinTage - 03/08/2010 21:25
Avatar van vinTage Nieuw lid Als je 'select distinct nl' doet, dan houd je alle unieke nl woorden over, ongeacht het id.
Offline Acario - 03/08/2010 22:43
Avatar van Acario Nieuw lid
vinTage schreef:
Als je 'select distinct nl' doet, dan houd je alle unieke nl woorden over, ongeacht het id.

Dat begrijp ik, maar juist de combinatie woord èn vertaling (2 kolommen) moet uniek zijn, en dat moet door de hele database gecontroleerd worden, en eventueel dubbele dienen verwijderd te worden... dien je dan iets als: 'SELECT DISTINCT woord, vertaling' ... te doen, of zo?
Offline vinTage - 03/08/2010 22:52 (laatste wijziging 03/08/2010 22:54)
Avatar van vinTage Nieuw lid nuja, ik begrijp je misschien niet helemaal, maar anders doe je die query 2 keer, een keer voor nl en een keer voor eng, dan ben je zeker safe.
Het zal vast simpeler kunnen, maar dat gok ik meer dan dat ik het zeker weet 

ik weet nu zo even geen voorbeeld, maar volgens mij bestaan er best wel 2 verschillende NL woorden met EEN engelse vertaling, dus ben je zeker dat je die 2 qry's wilt doen ?

edit2: een voobeeldje zou bv zijn:
kop => head
hoofd => head
Offline DenMette - 04/08/2010 08:17
Avatar van DenMette PHP gevorderde Je zou zoals Stijn zegt, gewoon moeten zorgen dat het niet lukt. Welke vertaling is voor jou de belangrijkste? Als dat de nederlandstalige is, dan maak je die ook UNIEK. Zo kunnen meerdere woorden wel dezelfde Engelse vertaling hebben, maar kunnen meerdere engelse woorden niet dezelfde nederlandse vertaling hebben!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.169s