Mailinglisten-Archive |
Hallo, ich bin gerade dabei ein paar Adress Daten zu vergleichen und löse das über eine MySQL Datenbank. In der DB habe ich ungefähr 10.000 Datensätze und möchte diese auf doppelte Einträge prüfen, doch mit meinem SQL Statement ist das recht langsam oder liege ich da falsch? Kann man da noch was optimieren??? CREATE TABLE `tmp_kunden` ( `id` int(8) NOT NULL auto_increment, `adresse` enum('y','n') NOT NULL default 'n', `firma` varchar(55) NOT NULL default '', `name` varchar(35) NOT NULL default '', `strasse` varchar(25) NOT NULL default '', `hnr` varchar(8) NOT NULL default '', `plz` varchar(10) NOT NULL default '', `land` varchar(5) default NULL, `ort` varchar(25) NOT NULL default '', `telefon` varchar(25) NOT NULL default '', PRIMARY KEY (`id`), UNIQUE KEY `id` (`id`), UNIQUE KEY `kd_nr` (`kd_nr`), KEY `adresse` (`adresse`), KEY `firma` (`firma`), KEY `name` (`name`), KEY `strasse` (`strasse`), KEY `hnr` (`hnr`), KEY `plz` (`plz`), KEY `ort` (`ort`), ) TYPE=MyISAM PACK_KEYS=0 COMMENT='Kunden' AUTO_INCREMENT=10917 ; SELECT t.id AS id, CONCAT( t.firma, ' ', t.name ) AS Name, CONCAT( t.strasse, ' ', t.hnr ) AS Strasse, CONCAT( t.plz, ' ', t.ort ) AS Ort, t2.id AS id2, CONCAT( t2.firma, ' ', t2.name ) AS Name2, CONCAT( t2.strasse, ' ', t2.hnr ) AS Strasse2, CONCAT( t2.plz, ' ', t2.ort ) AS Ort2 FROM tmp_kunden t, tmp_kunden t2 WHERE t.id <> t2.id AND t.firma LIKE t2.firma AND t.name LIKE t2.name AND t.strasse LIKE t2.strasse LIMIT 0 , 100 Grüße Marcus -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive