Mailinglisten-Archive |
> Hallo, > > >SELECT COUNT(*) AS total, spalte1, spalte2, ... FROM tabelle WHERE ... > >LIMIT 10; > > das geht nicht, da kommt folgendes bei raus: > > mysql> select count(email_link), email_link from member limit 10 ; > ERROR 1140: Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP > colum > ns is illegal if there is no GROUP BY clause > Das kann ja auch gar nicht funktionieren. count(email_link) gibt genau ein Ergebnis, email_link gibt aber n Ergebnisse. Wenn Du jetzt group by email_link hinzufügst, ist das zwar syntaktisch korrekt, liefert aber nicht das, was Du willst. Das Ergebnis wäre dann: count(email_link) email_link -------------------------------- 1 link1 1 link2 1 link3 ... Count's mit anderen Spalten zu mischen, geht halt nur mit 'group by'. Ein Anwendungszweck für solche Abfragen wäre z.B., wenn Du identische Werte in einer Spalte hast. Gehen wir mal von Deiner Tabelle aus, dann wäre folgendes möglich: select count(email_link) as anz, email_link from member group by email_link order by anz desc Mögliches Ergebnis: anz email_link -------------------------------- 25 link1 13 link2 9 link3 ... Ergo: Dein Wunsch läßt sich nur mit zwei Abfragen realisieren. Gruß, Jens Peter Möller --- *** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive