ホームページ >データベース >mysql チュートリアル >MySQL で整数のシーケンスを生成するにはどうすればよいですか?

MySQL で整数のシーケンスを生成するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-20 12:22:09801ブラウズ

How Can I Generate a Sequence of Integers in MySQL?

MySQL での整数シーケンスの構築

n から m までの単純な整数シーケンスの作成は、データベース操作の一般的な要件となる場合があります。 。 MySQL でこれを実現するには、再帰的な Common Table Expression (CTE) を使用することが頻繁に推奨される方法です。

そのようなアプローチの 1 つは、再帰的な CTE を既存のテーブルとマージすることです。

WITH RECURSIVE Numbers AS (
    SELECT
        n,
        n + 1 AS next_n
    FROM Numbers
    WHERE n < m
    UNION
    SELECT
        m,
        NULL
)
SELECT
    n
FROM Numbers
ORDER BY n;

Inこの例では、Numbers CTE は、指定された最大値 m に達するまで前の値に 1 を繰り返し加算することによって整数シーケンスを生成するように定義されています。次に、クエリはこの CTE を使用して、生成されたシーケンスを選択および順序付けします。

参照質問で提案されている代替アプローチには、ユーザー定義変数を含む単一のクエリを使用することが含まれます:

SET @row := 0;
SELECT
    @row := @row + 1 AS row,
    t.*
FROM some_table t, (SELECT @row := 0) r;

このメソッドは @row 変数を 0 に初期化し、結果セットの行ごとに 1 ずつ増分します。このアプローチはシナリオによってはより簡単な場合もありますが、すべての MySQL バージョンまたはコンテキストでサポートされているわけではないユーザー定義変数に依存します。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。