ホームページ > データベース > mysql チュートリアル > SQL のみを使用して MySQL で数値範囲を生成するにはどうすればよいですか?

SQL のみを使用して MySQL で数値範囲を生成するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-18 02:07:11
オリジナル
989 人が閲覧しました

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

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>
ログイン後にコピー

このクエリは、ネストされた一連のサブクエリに依存して一連の数値を生成します。具体的には:

  1. ONES: 0 から 9 までの一連の数値を生成します。
  2. TENS: 0 から 90 までの 10 の倍数のシーケンスを生成します。
  3. HUNDREDS: 0 から 900 までの 100 の倍数のシーケンスを生成します。

これらのサブクエリを相互結合することにより、シーケンスの可能なすべての組み合わせが得られます。最後の 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート