Beste PHPHulpers,

Ik ben bezig met een scrip dat dubbele emailadressen verwijderd uit een tabel. Dit wil ik niet doen op de volgende manier:

- 1 grote edit -

Nieuwe aanpak:
CREATE TABLE
msn_emails_temp
AS
SELECT
DISTINCT
emailaddress,
*
FROM
msn_emails;

DROP TABLE msn_emails;

CREATE TABLE
msn_emails
AS
SELECT
*
FROM
msn_emails_temp;

DROP TABLE msn_emails_temp;

MySQL retourneerde: Documentatie
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*
FROM
msn_emails' at line 7

Bij query 1

Wat doe ik fout?

Alvast bedankt!
Maak een nieuwe tabel, breng een UNIQUE constraint aan op de kolom met email adressen, gebruik INSERT INTO ... SELECT om de unieke records vanuit de ene tabel naar de andere tabel te kopieren. Gooi daarna je oude tabel weg.

Als je alles door de database laat doen, is de kans op dataverlies of datacorruptie het minst...
Maar dit lijkt me niet de snelste manier ook? Of zit ik daarnaast?
PHPerik kwam met de query:
DELETE FROM
mails
WHERE
emailaddress NOT IN(
SELECT DISTINCT
emailadress
FROM
mails
)
Mja dat werkt niet in MySQL...
Maar zoals je zelf al aangeeft werkt dat niet en zul je een alternatief moeten zoeken ;)
Ja, klopt. Ik wacht nog even de andere reacties af. Toch alvast bedankt
hoezo niet snel wat blanche zegt?
1 query lijkt me sneller dan 3 of 4? Of zit ik ernaast?
Terence schreef op 09.12.2007 23:21
hoezo niet snel wat blanche zegt?
Minder snel dan natuurlijk 1 simpele query. Maar altijd nog sneller dan een PHP oplossing.
Klopt, en ik heb echt het idee dat het MOET kunnen:P
Mja ik wacht de reactie van pgFrank even af:P

Reageren