Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Zufallsverfahren beim Select

Empfohlene Antworten

Veröffentlicht

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

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]

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

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.

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

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...

Habe ich gerade in Heise gelesen: SQL2003 kommt 2005. Dort beschrieben ist auch TABLESAMPLE für Stichproben aus einer Tabelle. Da das eh erst demnächst umgesetzt wird, einfach mal merken und für zukünftige Anwendungen im Hinterkopf behalten.

Gruß,

Florian

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.