Dalam pengurusan pangkalan data, mencipta jujukan nombor berturut-turut boleh menjadi sangat berguna untuk pelbagai tugas. MySQL menyediakan cara yang cekap untuk menjana julat sedemikian tanpa menggunakan bahasa skrip luaran.
Ini boleh dicapai melalui pendekatan berasaskan koleksi seperti yang ditunjukkan di bawah. Kaedah ini amat berguna untuk menjana sejumlah besar nilai tanpa overhed gelung.
Berikut ialah contoh pertanyaan yang menjana julat nombor dari 0 hingga 999:
<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 2 SeqValue UNION ALL SELECT 3 SeqValue UNION ALL SELECT 4 SeqValue UNION ALL SELECT 5 SeqValue UNION ALL SELECT 6 SeqValue UNION ALL SELECT 7 SeqValue UNION ALL SELECT 8 SeqValue UNION ALL SELECT 9 SeqValue ) ONES CROSS JOIN ( SELECT 0 SeqValue UNION ALL SELECT 10 SeqValue UNION ALL SELECT 20 SeqValue UNION ALL SELECT 30 SeqValue UNION ALL SELECT 40 SeqValue UNION ALL SELECT 50 SeqValue UNION ALL SELECT 60 SeqValue UNION ALL SELECT 70 SeqValue UNION ALL SELECT 80 SeqValue UNION ALL SELECT 90 SeqValue ) TENS CROSS JOIN ( SELECT 0 SeqValue UNION ALL SELECT 100 SeqValue UNION ALL SELECT 200 SeqValue UNION ALL SELECT 300 SeqValue UNION ALL SELECT 400 SeqValue UNION ALL SELECT 500 SeqValue UNION ALL SELECT 600 SeqValue UNION ALL SELECT 700 SeqValue UNION ALL SELECT 800 SeqValue UNION ALL SELECT 900 SeqValue ) HUNDREDS ) SEQ;</code>
Pertanyaan ini menggunakan operator UNION ALL
untuk mencipta jujukan gabungan nombor dengan menggabungkan jujukan berasingan satu, puluh dan ratusan digit. Operasi CROSS JOIN
membolehkan menggabungkan semua elemen dalam setiap jujukan, menghasilkan julat nombor yang lancar.
Jujukan yang dijana boleh dimasukkan terus ke dalam jadual INSERT INTO
menggunakan pernyataan myTable
. Kaedah ini mengisi jadual dengan cekap dengan data berjujukan, memastikan pengecam unik atau sebarang nilai berangka lain yang diperlukan dijana.
Atas ialah kandungan terperinci Bagaimana untuk Menjana Julat Nombor dengan Cekap dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!