Frage

Ich möchte ein Array erstellen (in PHP) von SQL-Ergebnisse wie folgt aus: Wir haben die SQL-Tabelle "Beiträge", das speichert den Namen und Nachricht .Beispiel:

  

Name | Nachricht

     

John | Hallo

     

Nick | schöner Tag

     

George | Auf Wiedersehen

     

John | wobei

Was ich will, ist auf Ausgabe der Namen von Menschen, die eine Nachricht geschrieben haben, aber nicht die gleichen Namen mehr als 1 Mal Anzeige . So würde der Ausgang John, Nick, George sein. (Aus diesen Aufzeichnungen, sehen wir, dass John 2 Beiträge geschrieben hat, aber in der letzten Ausgabe, sehen wir nur ein einziges Mal seinen Namen).

Ist das irgendwie möglich? Vielen Dank im Voraus.

War es hilfreich?

Lösung

Versuchen:

$sql = <<<END
SELECT DISTINCT Name FROM Posts
END;
$query = mysql_query($sql) or die($sql . ' - ' . mysql_error());
$names = array();
while ($row = mysql_fetch_array($query)) {
  $names[] = $row[0];
}
print_r($names);

Andere Tipps

SELECT DISTINCT

Sie können eine SQL-Abfrage ausführen, um nur die eindeutigen Namen zu wählen, und nichts anderes:

SELECT DISTINCT Name FROM Posts;

Dies gibt Ihnen eine Ergebnismenge, bestehend aus verschieden Namen Werten, wobei jeder eindeutigen Wert nur 1 Mal in der zurückgegeben wird.

die Zählung bekommen Sie müssen mithilfe von Gruppe aggregieren:

SELECT NAME , COUNT(*) as Posts FROM Posts GROUP BY NAME

Hier ist die SQL, wenn Sie zu einer Gruppe BY

nicht abgeneigt sind
select count(name) as N, name from posts group by name ;

Menschen mehr als 1 Post mit

select count(name) as N, name from posts group by name having N > 1 ;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top