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

So installieren Sie mysql5.6 in Docker unter Ubuntu

1. Installieren Sie mysql5.6 Docker führt MySQL a...

Docker-Verbindung – MongoDB-Implementierungsprozess und Codebeispiele

Nachdem der Container gestartet wurde Melden Sie ...

So überwachen Sie den Ausführungsstatus eines Docker-Container-Shell-Skripts

Szenario Das Unternehmensprojekt wird in Docker b...

So legen Sie Remotezugriffsberechtigungen in MySQL 8.0 fest

Im vorherigen Artikel wurde erklärt, wie man das ...

So ändern Sie das ursprüngliche Passwort von MySQL auf dem MAC

Problembeschreibung: Ich habe einen Mac gekauft u...

Tutorial zur HTML-Tabellenauszeichnung (1): Erstellen einer Tabelle

<br />Dies ist eine Reihe von Tutorials, die...

Grundsätze und Nutzungsdetails für MySQL 8.0-Benutzer- und Rollenverwaltung

Dieser Artikel beschreibt die Benutzer- und Rolle...

Implementierung von MySQL-indexbasierten Stresstests

1. Datenbankdaten simulieren 1-1 Datenbank- und T...

Implementierung von LNMP für die separate Bereitstellung von Docker-Containern

1. Umweltvorbereitung Die IP-Adresse jedes Contai...

Beispiel für einen reinen CSS3-Mindmap-Stil

Mindmap Er sieht wahrscheinlich so aus: Die meist...

Tutorial zur Verwendung des Multitail-Befehls unter Linux

MultiTail ist eine Software zum gleichzeitigen Üb...