MySQL abfrage auf 1 id beschränken

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
rox²³
Mitglied
Beiträge: 347
Registriert: 24.07.2003 15:18
Wohnort: Schmölln
Kontaktdaten:

MySQL abfrage auf 1 id beschränken

Beitrag von rox²³ »

Code: Alles auswählen

$thread_query_string = "SELECT DISTINCT(topid), id, forid, subfor, topid, user, posttime, text, num_edit, date_format(editdate, '%d.%m.%y - %H:%i') AS form_editdate, date_format(posttime, '%d.%m.%y - %H:%i') AS form_posttime FROM ".$praefix."threads WHERE topid='";
$thread_query_string .= implode("' OR topid='", $thread_query_array);
$thread_query_string .= "' ORDER BY posttime DESC LIMIT 0, 10";
Ich möchte das jeweils nur einmal der letzte Datenatz von topid ausgegeben wird aber insgesammt 10 der letzten Eintrage.

$thread_query_string ist eine Array wo alle topids drin sind also insgesammt 10 stück.
Beispiel:

Array ( [0] => 605 [1] => 1297 [2] => 1402 [3] => 58 [4] => 1357 [5] => 1379 [6] => 1257 [7] => 1302 [8] => 1288 [9] => 1385 )

Bekomme das mit DISTINCT einfach nicht hin habe schon alle mögliche Varianten probiert. mit Klammer ohne mit Komma ohne nix geht.

Kennt jemand noch ne bessere Lösung ?
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Zuerst mal kannst du dein Query vereinfachen: Anstatt diesen ganzen OR-Abfragen kannst du auch einfach so etwas verwenden:

Code: Alles auswählen

"WHERE topid IN('" . implode("', '", $thread_query_array) . "')"
Zur eigentlichen Frage: Eine komplette Lösung ist mir im Moment nicht bekannt, aber vielleicht kannst du das ganze mit MAX() in Verbindung mit HAVING lösen, siehe im MySQL-Handbuch. Auf jeden Fall ist DISTINCT der falsche Ansatz, da mit DISTINCT nur komplett identische Datensätze ausgeschlossen werden.

Ansonsten gibt es ja immer noch die Möglichkeit, das Query in zwei aufzuteilen (eins zum Auslesen der IDs (mit MAX()) und eins zum Auslesen der Daten).
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Benutzeravatar
rox²³
Mitglied
Beiträge: 347
Registriert: 24.07.2003 15:18
Wohnort: Schmölln
Kontaktdaten:

Beitrag von rox²³ »

Ja da muss ich mir mal was zurecht basteln danke
Antworten

Zurück zu „Coding & Technik“