Heim >Datenbank >MySQL-Tutorial >Wie erstelle ich einen Zahlenbereich in MySQL nur mit SQL?

Wie erstelle ich einen Zahlenbereich in MySQL nur mit SQL?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-18 02:07:11991Durchsuche

How to Generate a Range of Numbers in MySQL Using Only SQL?

Zahlenfolge in MySQL generieren

Die Verwendung von MySQL-Abfragen zum Generieren einer Reihe aufeinanderfolgender Zahlen kann auf verschiedene Arten erreicht werden. Betrachten Sie jedoch für eine sammlungsbasierte Lösung, die nur MySQL verwendet, die folgende Abfrage:

<code class="language-sql">INSERT INTO myTable (nr)
SELECT SEQ.SeqValue
FROM (
    SELECT (HUNDREDS.SeqValue + TENS.SeqValue + ONES.SeqValue) SeqValue
    FROM (
        SELECT 0 SeqValue UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9
    ) ONES
    CROSS JOIN (
        SELECT 0 SeqValue UNION ALL SELECT 10 UNION ALL SELECT 20 UNION ALL SELECT 30 UNION ALL SELECT 40 UNION ALL SELECT 50 UNION ALL SELECT 60 UNION ALL SELECT 70 UNION ALL SELECT 80 UNION ALL SELECT 90
    ) TENS
    CROSS JOIN (
        SELECT 0 SeqValue UNION ALL SELECT 100 UNION ALL SELECT 200 UNION ALL SELECT 300 UNION ALL SELECT 400 UNION ALL SELECT 500 UNION ALL SELECT 600 UNION ALL SELECT 700 UNION ALL SELECT 800 UNION ALL SELECT 900
    ) HUNDREDS
) SEQ;</code>

Diese Abfrage basiert auf einem verschachtelten Satz von Unterabfragen, um eine Zahlenfolge zu generieren. Konkret:

  1. EINS: Erzeugt eine Zahlenfolge von 0 bis 9.
  2. ZEHN: Erzeugt eine Folge von Vielfachen von 10 von 0 bis 90.
  3. HUNDERTE: Erzeugt eine Folge von Vielfachen von 100 von 0 bis 900.

Durch die Kreuzverknüpfung dieser Unterabfragen erhalten wir alle möglichen Kombinationen von Sequenzen. Die letzte SEQ-Unterabfrage kombiniert diese Werte, um die gewünschte Sequenz zu generieren:

<code>SeqValue = HUNDREDS.SeqValue + TENS.SeqValue + ONES.SeqValue</code>

Um beispielsweise eine Sequenz von 0 bis 999 zu generieren, würde die Abfrage die folgende Ausgabe zurückgeben:

<code>nr
0
1
2
3
4
5
...
998
999</code>

Das obige ist der detaillierte Inhalt vonWie erstelle ich einen Zahlenbereich in MySQL nur mit SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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