Heim > Datenbank > MySQL-Tutorial > Wie kann ich fünf zufällige, unterschiedliche Zeilen aus einer SQL-Tabelle auswählen?

Wie kann ich fünf zufällige, unterschiedliche Zeilen aus einer SQL-Tabelle auswählen?

Patricia Arquette
Freigeben: 2025-01-17 12:46:13
Original
613 Leute haben es durchsucht

How Can I Select Five Random Distinct Rows from a SQL Table?

SQL-Techniken zur zufälligen Zeilenauswahl

Das zufällige Auswählen von Zeilen aus einer SQL-Tabelle ist eine häufige Aufgabe bei verschiedenen Anwendungen. In dieser Anleitung wird gezeigt, wie Sie fünf eindeutige Zeilen aus einer Tabelle mit dem Namen „customerNames“ (mit den Spalten „Id“ und „Name“) mithilfe verschiedener SQL-Dialekte auswählen.

MSSQL-Methode (Microsoft SQL Server)

Für MSSQL Server 2005 und höher ruft diese Abfrage effizient fünf zufällige Zeilen ab:

<code class="language-sql">SELECT TOP 5 Id, Name FROM customerNames
ORDER BY NEWID()</code>
Nach dem Login kopieren

NEWID() generiert eine zufällige GUID und stellt so eine zufällige Reihenfolge sicher, bevor die TOP 5-Klausel die Ergebnismenge begrenzt.

Datenbankübergreifende zufällige Zeilenauswahl (einzelne Zeile)

Während das Obige für MSSQL funktioniert, demonstrieren die folgenden Methoden die Auswahl einer zufälligen Zeile in verschiedenen Datenbanksystemen. Um diese an die Auswahl von fünf Zeilen anzupassen, sind zusätzliche Techniken erforderlich (siehe unten).

  • MySQL:
<code class="language-sql">SELECT column FROM table
ORDER BY RAND()
LIMIT 1</code>
Nach dem Login kopieren
  • PostgreSQL:
<code class="language-sql">SELECT column FROM table
ORDER BY RANDOM()
LIMIT 1</code>
Nach dem Login kopieren
  • IBM DB2:
<code class="language-sql">SELECT column, RAND() as IDX 
FROM table 
ORDER BY IDX FETCH FIRST 1 ROWS ONLY</code>
Nach dem Login kopieren
  • Orakel:
<code class="language-sql">SELECT column FROM
( SELECT column FROM table
ORDER BY dbms_random.value )
WHERE rownum = 1</code>
Nach dem Login kopieren
  • SQLite:
<code class="language-sql">SELECT column FROM table 
ORDER BY RANDOM() LIMIT 1</code>
Nach dem Login kopieren

Denken Sie daran, "column" und "table" durch Ihre tatsächlichen Spalten- und Tabellennamen zu ersetzen.

Auswahl mehrerer zufälliger Zeilen (fünf Zeilen)

Um die Einzelzeilenauswahl auf fünf verschiedene Zeilen zu erweitern, ist oft ein ausgefeilterer Ansatz erforderlich. Die einfachste Methode, die wiederholte Ausführung einer Einzelzeilenabfrage, ist ineffizient und garantiert möglicherweise keine Eindeutigkeit. Fortgeschrittenere Techniken mit Fensterfunktionen oder Selbstverknüpfungen werden im Allgemeinen für größere Datensätze bevorzugt, um sowohl Zufälligkeit als auch Eindeutigkeit sicherzustellen. Die spezifische Methode hängt vom Datenbanksystem ab.

Leistungsüberlegungen

Die Leistung von Abfragen zur zufälligen Zeilenauswahl kann durch die Tabellengröße und die Optimierung der Datenbank-Engine beeinträchtigt werden. Bei extrem großen Tabellen können alternative Stichprobenstrategien erforderlich sein, um Leistungsengpässe zu vermeiden.

Das obige ist der detaillierte Inhalt vonWie kann ich fünf zufällige, unterschiedliche Zeilen aus einer SQL-Tabelle auswählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage