phpbar.de logo

Mailinglisten-Archive

Re: Limit und rows
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Limit und rows



> 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 


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive