2011-12-27 4 views
1

안녕 모두 400에서 600 개 MYSQL 행을 삽입 : 나는 순서대로 결과를 얻는 유지사용하여 1000 내가 400에서 시작하는 MYSQL 테이블에 600 개 행을 삽입하기 위해 노력하고있어 1000

INSERT INTO 
    myTable 
    (
    nr 
    ) 
SELECT 
    SEQ.SeqValue 
FROM 
(
SELECT 
    (HUNDREDS.SeqValue + TENS.SeqValue + ONES.SeqValue) SeqValue 
FROM 
    (
    SELECT 0 SeqValue 
    UNION ALL 
    SELECT 1 SeqValue 
    UNION ALL 
    SELECT 2 SeqValue 
    UNION ALL 
    SELECT 3 SeqValue 
    UNION ALL 
    SELECT 4 SeqValue 
    UNION ALL 
    SELECT 5 SeqValue 
    UNION ALL 
    SELECT 6 SeqValue 
    UNION ALL 
    SELECT 7 SeqValue 
    UNION ALL 
    SELECT 8 SeqValue 
    UNION ALL 
    SELECT 9 SeqValue 
    ) ONES 
CROSS JOIN 
    (
    SELECT 0 SeqValue 
    UNION ALL 
    SELECT 10 SeqValue 
    UNION ALL 
    SELECT 20 SeqValue 
    UNION ALL 
    SELECT 30 SeqValue 
    UNION ALL 
    SELECT 40 SeqValue 
    UNION ALL 
    SELECT 50 SeqValue 
    UNION ALL 
    SELECT 60 SeqValue 
    UNION ALL 
    SELECT 70 SeqValue 
    UNION ALL 
    SELECT 80 SeqValue 
    UNION ALL 
    SELECT 90 SeqValue 
    ) TENS 
CROSS JOIN 
    (
    SELECT 400 SeqValue 
    UNION ALL 
    SELECT 500 SeqValue 
    UNION ALL 
    SELECT 600 SeqValue 
    UNION ALL 
    SELECT 700 SeqValue 
    UNION ALL 
    SELECT 800 SeqValue 
    UNION ALL 
    SELECT 900 SeqValue 
    ) HUNDREDS 
) SEQ 

:

'968' 
'469' 
'569' 
'669' 

...

어떻게 그것을 밖으로 정렬 할 수 있습니다? some_table에 적어도 401 행이 있다고 가정하면,

+0

실제 사용 사례입니까? 1000 개의 mySQL INSERT 문을 생성하는 스크립트를 작성하는 것이 더 쉬울 수도 있습니까? –

+0

[** 400 ** 1000]에 ** random ** 600 숫자를 삽입하려고합니까, 아니면 해당 범위의 모든 숫자를 삽입하려고합니까? – melihcelik

+0

그 쿼리는 대체 무엇입니까? 현실 세계가 될 수있는 방법은 없습니다. 단지 끔찍한 것입니다. 순차 값을 생성하고 (순서대로 쓰는) 적어도 두 가지 방법으로 구현하기 쉽고 실행 속도가 빠릅니다. –

답변

2
select @s:[email protected]+1 as seq 
FROM (SELECT @s:=399) AS baseview, some_table 
WHERE @s<1000 
; 

을 가정한다.

당신이 정말로 당신의 구조로 가고 싶은 경우

, 마지막에

ORDER BY SeqValue 

를 추가합니다.

+0

'baseview'와'@s'는 무엇입니까? – methuselah

+0

@s는 sesion 변수이며 SELECT @s : = 399로 초기화 된 다음 각 행에서 증가합니다. baseview는 임의의 이름입니다. "SELECT @s : = 399"MySQL은 고유 한 이름을 가진 각 테이블을 고집합니다. –

+0

테이블을 내림차순으로 반환하는 것처럼 오름차순으로 정렬하는 방법은 무엇입니까? – methuselah

관련 문제