Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menjana Julat Nombor dalam MySQL Menggunakan Hanya SQL?

Bagaimana untuk Menjana Julat Nombor dalam MySQL Menggunakan Hanya SQL?

Patricia Arquette
Patricia Arquetteasal
2025-01-18 02:07:11991semak imbas

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

Jana urutan nombor dalam MySQL

Menggunakan pertanyaan MySQL untuk menjana satu siri nombor berturut-turut boleh dicapai dalam pelbagai cara. Walau bagaimanapun, untuk penyelesaian berasaskan koleksi hanya menggunakan MySQL, pertimbangkan pertanyaan berikut:

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

Pertanyaan ini bergantung pada set subkueri bersarang untuk menjana urutan nombor. Khususnya:

  1. ONES: Menghasilkan urutan nombor dari 0 hingga 9.
  2. PULUHAN: Menghasilkan urutan gandaan 10 daripada 0 hingga 90.
  3. RATUS: Menghasilkan urutan gandaan 100 daripada 0 hingga 900.

Dengan menyertai silang subkueri ini, kami memperoleh semua kemungkinan gabungan jujukan. Subkueri SEQ akhir menggabungkan nilai ini untuk menjana urutan yang diingini:

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

Sebagai contoh, untuk menjana jujukan dari 0 hingga 999, pertanyaan akan mengembalikan output berikut:

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

Atas ialah kandungan terperinci Bagaimana untuk Menjana Julat Nombor dalam MySQL Menggunakan Hanya SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn