>데이터 베이스 >MySQL 튜토리얼 >SQL만 사용하여 MySQL에서 숫자 범위를 생성하는 방법은 무엇입니까?

SQL만 사용하여 MySQL에서 숫자 범위를 생성하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-18 02:07:11992검색

How to Generate a Range of Numbers in MySQL Using Only SQL?

MySQL에서 숫자 시퀀스 생성

MySQL 쿼리를 사용하여 일련의 연속 숫자를 생성하는 것은 다양한 방법으로 수행할 수 있습니다. 그러나 MySQL만 사용하는 컬렉션 기반 솔루션의 경우 다음 쿼리를 고려하세요.

<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 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9
    ) ONES
    CROSS JOIN (
        SELECT 0 SeqValue UNION ALL SELECT 10 UNION ALL SELECT 20 UNION ALL SELECT 30 UNION ALL SELECT 40 UNION ALL SELECT 50 UNION ALL SELECT 60 UNION ALL SELECT 70 UNION ALL SELECT 80 UNION ALL SELECT 90
    ) TENS
    CROSS JOIN (
        SELECT 0 SeqValue UNION ALL SELECT 100 UNION ALL SELECT 200 UNION ALL SELECT 300 UNION ALL SELECT 400 UNION ALL SELECT 500 UNION ALL SELECT 600 UNION ALL SELECT 700 UNION ALL SELECT 800 UNION ALL SELECT 900
    ) HUNDREDS
) SEQ;</code>

이 쿼리는 일련의 숫자를 생성하기 위해 중첩된 하위 쿼리 집합을 사용합니다. 구체적으로:

  1. ONES: 0부터 9까지의 숫자 시퀀스를 생성합니다.
  2. TENS: 0부터 90까지 10의 배수 시퀀스를 생성합니다.
  3. HUNDREDS: 0부터 900까지 100의 배수 시퀀스를 생성합니다.

이러한 하위 쿼리를 교차 결합하여 가능한 모든 시퀀스 조합을 얻습니다. 최종 SEQ 하위 쿼리는 이러한 값을 결합하여 원하는 시퀀스를 생성합니다.

<code>SeqValue = HUNDREDS.SeqValue + TENS.SeqValue + ONES.SeqValue</code>

예를 들어 0부터 999까지의 시퀀스를 생성하려면 쿼리는 다음 출력을 반환합니다.

<code>nr
0
1
2
3
4
5
...
998
999</code>

위 내용은 SQL만 사용하여 MySQL에서 숫자 범위를 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.