MySQL extrahiert zufällig eine bestimmte Anzahl von Datensätzen

MySQL extrahiert zufällig eine bestimmte Anzahl von Datensätzen

Früher habe ich zur Handhabung dieser Art von Nutzungsszenario direkt nach rand() sortiert, aber die Effizienz war wirklich unbefriedigend. Daher bin ich kürzlich wieder auf dieses Szenario gestoßen und habe online nach einer besseren Lösung gesucht.

1.Reihenfolge nach rand()

Schreibmethode:

WÄHLEN
  Ausweis
AUS
  `Tabelle`
BESTELLEN BIS
  rand()

Der Nachteil dieser Schreibmethode besteht darin, dass die Rand-Funktion in der Reihenfolge mehrfach ausgeführt wird, was die Effizienz beeinträchtigt.

2. max(id) * rand() mit join

Schreibmethode:

WÄHLEN
  *
AUS
  `Tabelle` AS t1
VERBINDEN (
  WÄHLEN
    RUNDEN(
      RAND() * (
        (Wählen Sie MAX(id) aus „Tabelle“) – (Wählen Sie MIN(id) aus „Tabelle“)
      ) + (SELECT MIN(id) FROM `table`)
    ) AS-ID
) AS t2
WO
  t1.id >= t2.id
BESTELLEN BIS
  t1.id
GRENZE 1;

Die Großen im Internet empfehlen alle die zweite Schreibweise, deshalb möchte ich sie aufschreiben. Ich denke, dass die maximale und die minimale ID im Programm berechnet werden können.

Das Problem hierbei ist, dass mehrere Datensätze fortlaufend sein müssen. Wenn Sie also keine fortlaufenden Daten verwenden möchten, müssen Sie eine Schleife verwenden. Diese Anweisung ist jedoch äußerst effizient, sodass eine Schleifenabfrage durchgeführt werden kann.

Dies sind alle relevanten Wissenspunkte. Freunde in Not können davon lernen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

<<:  Element-Beispielcode zum Implementieren dynamischer Tabellen

>>:  So installieren Sie Babel mit NPM in VSCode

Artikel empfehlen

Objektorientierte JavaScript-Implementierung eines Lupengehäuses

In diesem Artikel wird der spezifische Code der o...

Tutorial zur Verwendung des Frameset-Tags in HTML

Frameset-Seiten unterscheiden sich etwas von norm...

JavaScript-Implementierung des Verifizierungscode-Falls

In diesem Artikel wird der spezifische Code für J...

Beispiel für die Konvertierung von Webpack-Bildern in Base64

URL-Loader herunterladen yarn add -D URL-Lader Mo...

Problem mit Berechtigungen zum Ändern gespeicherter Prozeduren in MySQL

Bei der Verwendung einer MySQL-Datenbank treten h...

So implementieren Sie eine automatische Remote-Sicherung von MongoDB unter Linux

Vorwort Nachdem ich den vorherigen Artikel über d...

Zusammenfassung der Probleme mit der Mysql-connector-java-Treiberversion

Problem mit der Mysql-Connector-Java-Treiberversi...

So fügen Sie eindeutige Indizes für Felder in MySQL hinzu und löschen sie

1. PRIMARY KEY hinzufügen (Primärschlüsselindex) ...

Ausführliche Erläuterung des globalen Status des WeChat-Applets

Vorwort Im WeChat-Applet können Sie globalData vo...