Mailinglisten-Archive |
> 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