Zum Inhalt springen

Zufallsverfahren beim Select


Empfohlene Beiträge

Geschrieben

Hi all,

gibt es in MYSQL eine Möglichkeit, wie ich Datenbankseitig von einer Tabelle zufalllsbedingt z.b. 5 Datensätze Selectieren kann?

Wie ich das PHP seitig hinbekomme ist klar, aber vielleicht gehts ja mit SQL?

Danke im vorraus

Geschrieben

meint ihr es könnte so gehen, hab ich grad beim google doch noch gefunden?

ich kanns leider erst am Montag testen


SELECT * FROM producttable ORDER BY RAND() LIMIT 1
UNION
SELECT * FROM producttable ORDER BY RAND() LIMIT 1
UNION
SELECT * FROM producttable ORDER BY RAND() LIMIT 1
UNION
SELECT * FROM producttable ORDER BY RAND() LIMIT 1
UNION
SELECT * FROM producttable ORDER BY RAND() LIMIT 1
[/PHP]

Geschrieben

warum klappt der UNION so nicht?

wie muss der UNION richtig heissen?

ich weiss mitlerweile, das es so auch geht:


SELECT * FROM site_menu ORDER BY RAND() LIMIT 5

aber mich interessier trotzdem, warum der union so nicht funzt

Geschrieben
warum klappt der UNION so nicht?

wie muss der UNION richtig heissen?

Das UNION ist ansich schon richtig, nur das ORDER By darf erst am Ende stehen und nur einmal. Damit würde deine Auswahl allerdings nicht gehen.

Union verkettet mehrere Abfragen zu einem einzigen Resultset. Und dieses Resultset kann eben nur einmal geordnet werden.

Geschrieben
Das UNION ist ansich schon richtig, nur das ORDER By darf erst am Ende stehen und nur einmal. Damit würde deine Auswahl allerdings nicht gehen.

Union verkettet mehrere Abfragen zu einem einzigen Resultset. Und dieses Resultset kann eben nur einmal geordnet werden.

und die resultsets die ich verkette lassen sich nicht einzel sortieren?

Wasn das für ne komische logic? :floet:

Wer macht den sowas ? :WD

Geschrieben
und die resultsets die ich verkette lassen sich nicht einzel sortieren?

Wasn das für ne komische logic? :floet:

Wer macht den sowas ? :WD

Du hättest am Ende ein Resultset, das in sich verschiedene Sortierungen hat:


SELECT NACHNAME, VORNAME FROM tbl1 ORDER BY NACHNAME

UNION

SELECT NACHNAME, VORNAME FROM tbl2 ORDER BY VORNAME

UNION

SELECT NACHNAME, VORNAME FROM tbl3 ORDER BY NACHNAME DESC

Würde bestimmt toll aussehen ;)

EDIT:

Ich denke, es ist einfach so, dass die Sortierung eben ganz am Ende erfolgt, wenn das Resultset schon komplett ist. Und eben nur einmal. Könnte sein, dass es manche Datenbanken gibt die das so sogar unterstützen, weiss man ja nie...

Geschrieben

Ich hab auch ma bei uns im IFX-Manual nachgesehen

Da gibts das auch schon, aber nur in der Enterprise Edition.

sieht dann so aus:


SELECT <anzahlfelder> SAMPLES OF <feldname> FROM <tabelle>

sprich:

SELECT 5 SAMPLES OF id_cat FROM categories

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...