ホームページ >データベース >mysql チュートリアル >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 サイトの他の関連記事を参照してください。