2012-01-14 3 views
1

MySQL에서는 숫자 인수를 사용하여 그 숫자를 기반으로 다른 테이블의 결과 집합을 뱉어내는 함수가 있습니다.MySQL에서 select 문에 루프가있는 열 생성

 
SELECT 
    id, 
    date, 
    function(do stuff with value 1) as t1, 
    function(do stuff with value 2) as t2, 
    function(do stuff with value 3) as t3, 
    ... 
    function(do stuff with value N) as tN 
FROM table 

당신이 선택 성명에서 (테이블을 작성하거나 절차를) 루프를 사용할 수 있도록 위가된다 :처럼 구현은 현재 보이는

 
SELECT 
    id, 
    date, 
    LOOP x = 1 through N 
    function(do stuff with value x) as tx, 
    END LOOP 
FROM table 

감사합니다.

+1

이 선택문은 더 큰 프로젝트의 일부입니까? 호출 언어 (php, java 등)에서 루프를 사용하여 select 문에 대한 문자열을 생성하는 것을 고려 했습니까? – JustinDanielson

+0

나는 프로젝트와 학습 모두를 위해 가능한 한 MySQL 내부에서 많은 것을하려고 노력하고있다. 이상적으로는 쿼리를 테이블로 선택하여 더 먼 곳에서 사용할 수 있습니다. – Trees4theForest

+0

그래서 SQL로만 n + 2 열을 동적으로 선택하려고합니까? 나는 그것이 가능한지 모른다. 지금까지의 쿼리가 있습니까? 아니면 시작하기 전에 가능한지 확인하려고합니까? 나는 그것이라고 생각하지 않는다. 그리고 인터넷 검색은 해결책을 찾는데 더 가까이 다가 가지 못했다. – JustinDanielson

답변

3

그래 당신은 ... DynamicSQL에 좀 걸릴 수 있습니다 .. 일반적으로

Here's one sample

and another example

, 당신은 당신이 실행하려는 SQL 문이 포함 된 문자열을 구축하고 준비 그런 다음 실행하십시오 ...

관련 문제