Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menjana Julat Nombor dengan Cekap dalam MySQL Tanpa Gelung?

Bagaimana untuk Menjana Julat Nombor dengan Cekap dalam MySQL Tanpa Gelung?

Susan Sarandon
Lepaskan: 2025-01-18 02:20:09
asal
971 orang telah melayarinya

How to Efficiently Generate a Range of Numbers in MySQL Without Loops?

Menjana Urutan Nombor dalam MySQL Tanpa Gelung

MySQL selalunya memerlukan penjanaan nombor berturut-turut untuk tugasan seperti mengisi jadual atau menyusun data. Ini boleh dicapai dengan cekap menggunakan operasi berasaskan set, mengelakkan keperluan untuk gelung.

Berikut ialah pertanyaan untuk menjana julat berangka:

<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 SeqValue ... UNION ALL SELECT 9 SeqValue
    ) ONES
    CROSS JOIN (
        SELECT 0 SeqValue UNION ALL SELECT 10 SeqValue ... UNION ALL SELECT 90 SeqValue
    ) TENS
    CROSS JOIN (
        SELECT 0 SeqValue UNION ALL SELECT 100 SeqValue ... UNION ALL SELECT 900 SeqValue
    ) HUNDREDS
) SEQ;</code>
Salin selepas log masuk

Pertanyaan ini memanfaatkan subkueri (ONES, TENS, HUNDREDS) untuk mencipta set digit (0-9, 0-90, 0-900). CROSS JOIN menggabungkan set ini, menghasilkan semua kombinasi yang mungkin. Hasilnya dijumlahkan untuk mencipta jujukan, dan akhirnya dimasukkan ke dalam myTable.

Pendekatan ini menawarkan kaedah berskala dan cekap untuk mencipta urutan berangka dalam MySQL, menghapuskan overhed gelung prosedur. Julat mudah dilaraskan dengan mengubah suai subkueri.

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

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan