在MySQL中產生數字序列
使用MySQL查詢產生一系列連續數字可以透過多種方法實現。但是,對於僅使用MySQL的基於集合的解決方案,請考慮以下查詢:
<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>
此查詢依賴巢狀子查詢集來產生數字序列。具體來說:
透過交叉連接這些子查詢,我們得到了所有可能序列的組合。最終的 SEQ 子查詢會組合這些值以產生所需的序列:
<code>SeqValue = HUNDREDS.SeqValue + TENS.SeqValue + ONES.SeqValue</code>
例如,要產生從 0 到 999 的序列,查詢將傳回以下輸出:
<code>nr 0 1 2 3 4 5 ... 998 999</code>
以上是如何僅使用 SQL 在 MySQL 中產生數字範圍?的詳細內容。更多資訊請關注PHP中文網其他相關文章!