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 中国語 Web サイトの他の関連記事を参照してください。