집 >데이터 베이스 >MySQL 튜토리얼 >SQL SELECT 문을 사용하여 처음 N개의 양수를 어떻게 생성할 수 있습니까?
SQL SELECT를 사용하여 처음 N개의 양수 생성
문제:
첫 번째 N개 얻기 표준 SQL SELECT 문만을 사용하는 N 양의 정수는 문제를 제기했습니다. 카운트 테이블을 사용하지 않고 해결 방법이 있습니까?
답변:
일반 SQL에는 이 작업에 대한 기본 방법이 없지만 여러 주요 데이터베이스 시스템에서는 다음을 제공합니다. 솔루션:
Oracle:
SELECT level FROM dual CONNECT BY level <= 10
SQL 서버:
WITH q AS ( SELECT 1 AS num UNION ALL SELECT num + 1 FROM q WHERE num < 10 ) SELECT * FROM q
PostgreSQL:
SELECT num FROM generate_series(1, 10) num
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 prc_filler(10);
위 내용은 SQL SELECT 문을 사용하여 처음 N개의 양수를 어떻게 생성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!