ホームページ > データベース > mysql チュートリアル > MySQL で数値範囲を効率的に生成するにはどうすればよいですか?

MySQL で数値範囲を効率的に生成するにはどうすればよいですか?

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

How to Efficiently Generate a Range of Numbers in MySQL?

MySQL で数値シーケンスを効率的に生成する

データベース管理では、連続する番号のシーケンスを作成すると、さまざまなタスクに非常に役立ちます。 MySQL は、外部スクリプト言語を使用せずにそのような範囲を生成する効率的な方法を提供します。

これは、以下に示すように、コレクションベースのアプローチを通じて実現できます。この方法は、ループのオーバーヘッドなしで大量の値を生成する場合に特に便利です。

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

このクエリは、UNION ALL 演算子を使用して、1、10、100 の桁の個別のシーケンスを結合することにより、結合された数値シーケンスを作成します。 CROSS JOIN 演算を使用すると、各シーケンス内のすべての要素を結合できるため、シームレスな範囲の数値が得られます。

生成されたシーケンスは、INSERT INTO ステートメントを使用して myTable テーブルに直接挿入できます。この方法では、テーブルにシーケンシャル データを効率的に入力し、一意の識別子やその他の必要な数値が確実に生成されるようにします。

以上がMySQL で数値範囲を効率的に生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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