DieterF: MySQL-Verständnisfrage

Hallo,

nach langer Abwesenheit muß ich euch leider nochmal auf die "Nerven" mit meinen Problemchen fallen:
Ich muß derzeit ein bestehendes Script umändern. Hierbei handelt es sich um ein Adresslisting.
Dieses soll derart verändert werden, das die bisherige Ausgabe / Reihenfolge (bis dato sortiert nach Namen) per Zufall erfolgen soll.
Diese löst man logischerweise mit ORDER RAND()...
Soweit, sogut...
Nun ist aber noch erwünscht, das die zufällige Reihenfolge doch noch sortiert werden soll (ich hasse Projekte wo es alle zwei Tage was neues sein soll...), nämlich soll die zufällige (!) Liste derart umgesetzt werden, das der erste Eintrag bei einer vorherigen Ausgabe zuletzt eingeblendet werden, der zweite Eintrag bei einer vorherigen Ausgabe als vorletzter usw., soll.
Also faktisch eine "sortierte" Zufallsausgabe - ich weiß, klingt nicht sehr logisch...
Da ich mit meinem "MySQL-Latein" hierbei nicht weiterkomme, hoffe ich hier ein paar Denkansätze zu bekommen.

Viele Grüße
DieterF

  1. nämlich soll die zufällige (!) Liste derart umgesetzt werden, das der erste Eintrag bei einer vorherigen Ausgabe zuletzt eingeblendet werden, der zweite Eintrag bei einer vorherigen Ausgabe als vorletzter usw., soll.

    Ääääh...was? Du gibst die Adressliste einmal in zufälliger Reihenfolge aus und beim nächsten mal ist es die selbe zufällige Reihenfolge rückwärts sortiert? Oder was bitte soll "der erste Eintrag bei einer vorherigen Ausgabe zuletzt eingeblendet werden..." heisse?

    Cruz

    1. Ääääh...was? Du gibst die Adressliste einmal in zufälliger Reihenfolge aus und beim nächsten mal ist es die selbe zufällige Reihenfolge rückwärts sortiert? Oder was bitte soll "der erste Eintrag bei einer vorherigen Ausgabe zuletzt eingeblendet werden..." heisse?

      Cruz

      Jep, genauso hab ich auch geschaut als mir das gesagt worden ist...
      Die Ausgabe soll ZUFÄLLIG sortiert sein, allerdings soll der erste Eintrag der bei der vorausgegangenen zufälligen Sortierung bei der nächsten Ausgabe automatisch an das Listenende gerückt werden.
      Ich muß zugeben das ich selbst bis dato noch nie einen solchen Quatsch gehört habe - aber, was der Kunde will soll er auch bekommen - auch wenn ich bislang noch nicht weiß wie :-()

      Gruss
      DieterF

      1. Die Ausgabe soll ZUFÄLLIG sortiert sein, allerdings soll der erste Eintrag der bei der vorausgegangenen zufälligen Sortierung bei der nächsten Ausgabe automatisch an das Listenende gerückt werden.

        Du hast mir nicht bestätigt, ob ich richtig verstanden habe, ob ein und die selbe Liste zwei mal angezeigt wird. Einmal in völlig zufälliger Reihenfolge und das zweite mal die selbe zufällige Reihenfolge rückwärts?

        Wenn dem so ist, dann musst du dir im Grunde nur selbst den Seed setzen und ihn dir für den zweiten Aufruf merken. Also...

        erst ORDER BY RAND(s) ASC
        (erzeugt zufällige Sortierung mit random seed s)

        und beim zweiten mal ORDER BY RAND(s) DESC
        (erzeugt selbe zufällige Sortierung mit random seed s in umgekehrter Reihenfolge)

        Siehe auch Stichwortsuche nach RAND() auf www.mysql.com

        Cruz

        1. Hallo Cruz,

          Du hast mir nicht bestätigt, ob ich richtig verstanden habe, ob ein und die selbe Liste zwei mal angezeigt wird. Einmal in völlig zufälliger Reihenfolge und das zweite mal die selbe zufällige Reihenfolge rückwärts?

          Wenn dem so ist, dann musst du dir im Grunde nur selbst den Seed setzen und ihn dir für den zweiten Aufruf merken. Also...

          erst ORDER BY RAND(s) ASC
          (erzeugt zufällige Sortierung mit random seed s)

          und beim zweiten mal ORDER BY RAND(s) DESC
          (erzeugt selbe zufällige Sortierung mit random seed s in umgekehrter Reihenfolge)

          Mit dem Setzten des Seeds habe ich schon rumexperimentiert, allerdings liefert dieses bei mir nicht die gewünschten Resultate, da die select nicht immer die gleichen Paras hat und somit unterschiedliche Listen ausgibt.
          Derzeit bin ich am grübeln, ob ich nicht einer Art counterwert den Einträgen hinzufüge um hierüber die Häufigkeit, besser gesagt die Listenposition zu steuern...

          Gruss
          DieterF