Erstellen einer Folge von Ganzzahlen in MySQL
Das Erstellen einer einfachen Folge von Ganzzahlen von n bis einschließlich m kann eine häufige Anforderung bei Datenbankoperationen sein . Um dies in MySQL zu erreichen, ist eine häufig empfohlene Methode die Verwendung eines rekursiven Common Table Expression (CTE).
Ein solcher Ansatz besteht darin, einen rekursiven CTE mit einer vorhandenen Tabelle zusammenzuführen:
WITH RECURSIVE Numbers AS ( SELECT n, n + 1 AS next_n FROM Numbers WHERE n < m UNION SELECT m, NULL ) SELECT n FROM Numbers ORDER BY n;
In In diesem Beispiel ist der Zahlen-CTE so definiert, dass er eine Folge von Ganzzahlen generiert, indem er iterativ 1 zum vorherigen Wert addiert, bis er den angegebenen Maximalwert m erreicht. Die Abfrage verwendet dann diesen CTE, um die generierte Sequenz auszuwählen und zu ordnen.
Ein alternativer Ansatz, wie in der Referenzfrage vorgeschlagen, beinhaltet die Verwendung einer einzelnen Abfrage mit einer benutzerdefinierten Variablen:
SET @row := 0; SELECT @row := @row + 1 AS row, t.* FROM some_table t, (SELECT @row := 0) r;
Diese Methode initialisiert die @row-Variable auf 0 und erhöht sie für jede Zeile im Ergebnissatz um 1. Während dieser Ansatz in manchen Szenarien einfacher sein kann, basiert er auf benutzerdefinierten Variablen, die nicht in allen MySQL-Versionen oder -Kontexten unterstützt werden.
Das obige ist der detaillierte Inhalt vonWie kann ich in MySQL eine Folge von Ganzzahlen generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!