Mailinglisten-Archive |
Wolfgang Hübner schrieb am Donnerstag, den 29. Juli 1999: > mysql> select * from users where domain="dd.de" and alias=""; > > +----+--------+-------+--------+ > | id | userid | alias | domain | > +----+--------+-------+--------+ > | 46 | er | | dd.de | > | 45 | es | | dd.de | > | 44 | test | | dd.de | > | 43 | sie | | dd.de | > | 42 | test | | dd.de | > | 41 | test | | dd.de | > | 40 | er | | dd.de | > +----+--------+-------+--------+ > > id ist unique. > > Wie lösche ich jede gleiche userid *bis auf jeweils eine*, die keinen alias > hat? In diesem Fall einmal "er" und zweimal "test". Ich denke, am besten in zwei Schritten: a) Erstmal herausbekommen, um welche "userid"s es sich handelt. SELECT userid +--------+------+ ,MIN(id) AS id | userid | mid | FROM users +--------+------+ WHERE alias='' | er | 40 | GROUP BY userid | test | 41 | HAVING count(*)>1; +--------+------+ Die Liste dieser "userids" und "id"s extern speichern. b) Alle Datensätze mit den gespeicherten "userid"s löschen, außer denen mit den gespeicherten "id"s (wir wollen ja je einen Repräsentanten behalten). DELETE FROM users WHERE userid IN ('er','test') AND id NOT IN (40,41); Ciao, Martin -- Martin Ramsch <m.ramsch_(at)_computer.org> <URL: http://home.pages.de/~ramsch/ > PGP KeyID=0xE8EF4F75 FiPr=52 44 5E F3 B0 B1 38 26 E4 EC 80 58 7B 31 3A D7 --- *** Abmelden von dieser Mailingliste funktioniert per E-Mail *** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe
php::bar PHP Wiki - Listenarchive