phpbar.de logo

Mailinglisten-Archive

[php] AW: [php] OT: Mysql - doppelte ausgeben

[php] AW: [php] OT: Mysql - doppelte ausgeben

Wolfgang Drews drews_(at)_movinweb.de
Mon, 17 Jul 2000 14:23:48 +0200


> Von: php-admin_(at)_php-center.de [mailto:php-admin_(at)_php-center.de]Im Auftrag
> von Thomas 'Balu' Walter
> Gesendet: Montag, 17. Juli 2000 14:08
> An: php_(at)_php-center.de
> Betreff: [php] OT: Mysql - doppelte ausgeben


> Ich wuerde gerne aus einer Datenbank alle Zeilen ausgeben lassen,
> bei denen in einer Spalte ein Wert mehrfach vorkommt.
>
> Normalerweise wuerde ich ungefaehr das folgende versuchen:
>
> SELECT DISTINCTROW <spaltenname>
> FROM <tabelle>
> WHERE <spaltenname> IN
> ( SELECT <feldname>
>   FROM <tabelle> AS tmp
>   GROUP BY <feldname>
>   HAVING COUNT(*) > 1)
> ORDER BY <feldname>;
>
> Leider kann mysql das IN nicht :(

an einem php-patch für mysql-subselects wird IMHO gerade gearbeitet.
Solange das dauert, wirst du wohl ein Schleife benutzen müssen. Je nach
#DS ist das aber auch nicht so schlimm, wenn man den auf UNIX arbeitet.
Ich habe letztens sowas für einen GarbageCollector gemacht, das Ergebnis
der Durchlaüfe im Vergleich:

WIN32/PHP3: 475 DS: ca. 220tsd durchläufe == 80 sekunden
FreeBSD/PHP4: 475 DS: ca. 220tsd durchläufe == 7 sekunden

mein Fazit: die Kosten sind auf (UNIX) vertretbar.

mit bestem Gruß

-Wolfgang

--
PHP Knotenpunkt - Dynamic Web Pages: http://www.dynamic-webpages.de
    PHP-Stand auf Europas größter Linux-Messe:
    LinuxTag 2000 Nachlese & LinuxTag 2001
weitere Infos _(at)_ http://www.dynamic-webpages.de/







php::bar PHP Wiki   -   Listenarchive