LarsSW: MySQL: Lassen sich hier 2 SQL Statements vermeiden?

Beitrag lesen

Hallo,

ich habe so eine Art Privatnachrichten-System. Im Posteingang frage ich zb. alle Nachrichten ab, die an Benutzer "Fritz" gesendet wurden. Doppelte Einträge spielen dabei keine Rolle, denn es kann ja gut sein, dass Benutzer "Heinz" durchaus mehrere Nachrichten an "Fritz" gesendet hat.

Nun habe ich aber auf der HTML-Seite über der Nachrichtenliste noch ein SELECT-Menü, in dem alle Benutzer aufgelistet sind, die "Fritz" eine Nachricht geschickt haben. Dort soll "Heinz" natürlich nur einmal drinstehen.

Bisher hab ich dafür 2 Abfragen verwendet: Die sind im Prinzip identisch, die eine fragt alle Nachrichten ab, die zweite tut das auch, nur dass im SQL-Statement "DISTINCT" verwendet wurde, damit jeder Benutzer nur einmal aufgelistet wird.

Meine Frage: Ist das sinnvoll? Oder sollte ich doch nur eine Abfrage machen, und dann bei jeder Zeile einmal überprüfen, ob der Benutzer schon der SELECT-Liste zugefügt wurde?

Diese Überprüfung sähe so aus:

while($row = mysql_fetch_array($result))  
{  
  if(strpos($selectListe,$row['user']) !== false)  
    $selectListe .= ",".$row['user'];  
  // Hier werden dann die restlichen Variablen gespeichert  
}

Ich frage mich also: Was ist schneller? In jeder Zeile, die abgearbeitet wird, eine strpos() Überprüfung, oder einfach ein zweites SQL-Statement?

Beste Grüße
Lars

--
Zuletzt fertiggestelltes Projekt:
| Kostenlos chatten bei inTalk.de |