SQL SELECT を使用した正の整数の生成
最初の N 個の正の整数で構成される結果セットを取得する必要性は、データ操作タスクでよく発生します。ただし、カウント テーブルが提供されていない場合、標準 SQL SELECT ステートメントで問題が発生する可能性があります。
標準 SQL ソリューションの試行
最初は、これらを取得することが可能であるように見えるかもしれません。 SELECT ステートメントを使用して直接整数を取得します。ただし、ほとんどの主要な SQL システムには、一連の連続する整数を生成する組み込みメカニズムがありません。したがって、標準の SELECT ステートメントのみに依存すると、望ましい結果が得られない可能性があります。
MySQL 特有のアプローチ
残念ながら、MySQL にはこの点で顕著な欠点があります。 Oracle の「CONNECT BY」や PostgreSQL の「generate_series」などの機能を提供する他のシステムとは異なり、MySQL にはこのタスクのための明示的なメカニズムがありません。
代替ソリューション
MySQL のこの制限については、次のことを考慮してください。回避策:
例MySQL スクリプト
次のスクリプトは、フィラー テーブルを作成して使用して正の整数を生成する例を示しています。
CREATE TABLE filler ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT ) ENGINE=Memory; CREATE PROCEDURE prc_filler(cnt INT) BEGIN DECLARE _cnt INT; SET _cnt = 1; WHILE _cnt <= cnt DO INSERT INTO filler SELECT _cnt; SET _cnt = _cnt + 1; END WHILE; END $$ -- Call the procedure to fill the table with integers CALL prc_filler(10); -- Select the desired number of integers SELECT id FROM filler LIMIT 5;
このスクリプトは、「filler」と呼ばれる一時テーブルを作成します。 「id」列に最初の 10 個の正の整数を入力します。その後、必要に応じて SELECT ステートメントを使用して、必要な数の整数を取得できます。
以上がSQL SELECT ステートメントを使用して一連の正の整数を生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。