kostenloser Webspace werbefrei: lima-city


Probs mit DISTINCT

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    t**********e

    gibt es eine M?glichkeit, das bei doppelten Eintr?ge der letzte Eintrag bestehen bleibt und alle anderen davor werden entfernt.

    im normalfall is es so das der erste treffer bestehen bleibt. und alle danach gel?scht werden. ich will das nur der letzte bestehen blleibt. kann mir da jemand helfen?
    Danke Leutz
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Autor dieses Themas

    t**********e

    Mir schein als "killt" DISTINCT einfach meine ORDER BY anweisung. das is echt mies. was bildet sich der Befehl ein? :thefinger: kann mir einer in die richtung auskunft geben oder weiterhelfen?

    ich geb nochma ein wenig Code von mir, das ihr euch ein bild machen k?nnen:

    $result = mysql_query("SELECT thread as 'nr' FROM threads GROUP BY id, nr ORDER BY id DESC LIMIT 10");

    ERGEBNISS:

    +---------+
    | thread |
    +---------+
    | 32 |
    | 38 |
    | 37 |
    | 36 |
    | 37 |
    | 38 |
    | 9 |
    | 24 |
    | 38 |
    | 8 |
    +---------+
    Wie man sieht gibt es doppelte... das soll aber nich so sein. die eintr?ge sind nach id (primary key) geordnet. id hab ich nich aufgef?hrt. die werte fallen ab von 338 bis 329.
    Jetz der selbe Befehl nur mit DISTINCT:

    $result = mysql_query("SELECT DISTINCT(thread) as 'nr' FROM threads GROUP BY id, nr ORDER BY id DESC LIMIT 10");

    ERGEBNISS:

    +---------+
    | thread |
    +---------+
    | 38 |
    | 37 |
    | 36 |
    | 35 |
    | 34 |
    | 33 |
    | 32 |
    | 31 |
    | 30 |
    | 29 |
    +---------+


    Mhh jetz hat er nur die spalte 'thread' r?chw?rts ausgelesen und die doppelten weggelassen.

    Wer kann mir sagen, wie ich folgende ergebnisse bekomme:?

    +---------+
    | thread |
    +---------+
    | 32 |
    | 38 |
    | 37 |
    | 36 |
    | 9 |
    | 24 |
    | 8 |
    ...
    ...
    +---------+

    w?r echt cool wenn ihr ne idee daf?r habt
  4. l*****i

    DISTINCT entfernt alle Doppelten Eintr?ge in der Ausgabe. Der DISTINCT-Befehl bezieht sich nur auf die Ausgabe
    Bei folgendem SQL-Befehl werden keine doppelten Eintr?ge in der Ausgabe angezeit.

    Select distinct thread from threads order by id desc limit 10;

    dein problem wird warscheinlich damit nicht gel?st werden. So weit ich weis wirst du das mit 1 SQL-Statement nicht hinbekommen.
  5. k*********2

    versuch mal, eine Aufz?hlungs?berpr?fung anders durchzuf?hren mit Hilfe der ersten Methode:

    $result = mysql_query("SELECT thread as 'nr' FROM threads GROUP BY id, nr ORDER BY id DESC LIMIT 10");
    $y=0
    while($i = mysql_fetch_row($result)) {
    $x=0;
    while($x <= $y) {
    if ($i[$y]!=$i[$x]) {
    // Hier kommt die Ausgabe der Zeile hin;
    }
    $x++;
    }
    $i++;
    $y++;
    }


    Bei diesem Script wird die Aktuell ausgelsene Zeile nochmal mit den bereits aufgelisteten Zeilen verglichen. Sollte es nicht doppelt vorkommen, dann wird eine Ausgabe erzeugt. Ich habe zwar den Script nicht getestet, aber glaube, das der so geht!
  6. Autor dieses Themas

    t**********e

    Tja kenny glaube is zwar alles, aber leider nich immer. trotz der 2 kleinen fehler die drin waren l?uft es leider nich. Mein editor is abgeschmiert :lol:. aber ich muss dir auf jeden fall daf?r danken, dass du dir wenigstens gedanken gemacht hast. ich bin mir fast sicher kann das daf?r ein SQL Befehl ausreicht. Aber ich find einfach keine so speziellen tutorials. danke nochma an dich kenny ;)
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!