Vinzenz Mai: MySQL abfrage

Beitrag lesen

Hallo Simon,

SELECT eingetragenvon, count(eingetragenvon) AS anzahl FROM $tabelle_kontakte GROUP BY eingetragenvon ORDER BY anzahl DESC LIMIT 1

Was mach ich falsch?

Das weiß ich nicht. Meine Glaskugel ist leider immer noch etwas trübe ;-) Aber ein paar Tipps zum Debugging. Meine Glaskugel meinte, dass Du PHP zum Zusammenbauen Deines SQL-Statements nutzt. Du solltest Dir auf jeden Fall einmal das Statement so anzeigen lassen, wie es an die Datenbank geschickt wird.

Weiter: Baue Deine Anweisung Schritt für Schritt zusammen. Dann verstehst Du auch besser, was passiert:

1. Schritt: Welche Werte stehen in der Spalte "eingetragenvon"

SELECT  
  eingetragenvon  
FROM Tabelle

2. Schritt: Gruppiere nach den verschiedenen Werten

SELECT  
  eingetragen  
FROM Tabelle  
GROUP BY eingetragenvon

3. Schritt: Füge die Anzahl hinzu

SELECT  
  eingetragenvon,  
  count(eingetragenvon)  
FROM Tabelle  
GROUP BY eingetragenvon

4. Schritt: Gebe der Spalte Anzahl einen vernünftigen Namen

SELECT  
  eingetragenvon,  
  count(eingetragenvon) AS anzahl  
FROM Tabelle  
GROUP BY eingetragenvon

5. Schritt: Sortiere nach Anzahl absteigend

SELECT  
  eingetragenvon,  
  count(eingetragenvon) AS anzahl  
FROM Tabelle  
GROUP BY eingetragenvon  
ORDER BY anzahl DESC

6. Schritt: Limitiere das Ergebnis auf den ersten Datensatz

SELECT  
  eingetragenvon,  
  count(eingetragenvon) AS anzahl  
FROM Tabelle  
GROUP BY eingetragenvon  
ORDER BY anzahl DESC  
LIMIT 1

Prinzipiell gesehen müsste schon der erste Schritt ein von Dir nicht erwartetes Ergebnis liefern. Du darfst gern die Ausgabe dieser Abfragen posten (vielleicht nicht gerade das Ergebnis des ersten Schritts, das solltest Du eher beschreiben). Ach ja, grundsätzlich interessiert mich bei MySQL stets die genaue Versionsnummer.

Freundliche Grüße

Vinzenz