2013-04-07 2 views
0

내 MySQL 쿼리가 csv로 보내진 다음 HTML 파일로 전송됩니다. 예상대로 내가 할 ...IF 조건에서 쿼리 필드 건너 뛰기

SELECT 
field_a, 
IF($VAR="yes",field_b,""), 
field_c 
FROM table 
INTO OUTFILE "query.csv"; 

... 난 항상, 3 열 (field_a, field_b 또는 빈, field_c)을 얻는다. $ VAR이 "예"가 아닌 경우 어떻게 2 열 (field_a, field_c) 만 얻을 수 있습니까?

+0

수 없습니다. 쿼리 결과는 가변 개수의 열을 가질 수 없습니다. 그럼에도 불구하고 세 필드의 값을 하나의 값으로 연결할 수 있습니다 – agim

+0

먼저'$ VAR'을 테스트 한 다음 두 개의 다른 select 문으로 나누면 안됩니까? – bendataclear

+0

네, select 문을 나눌 수 있습니다. b) 두 개의 다른 스크립트를 사용합니다. c) csv에서 세 번째 열을 제거하기 위해 sed를 사용합니다.이 코드가 작성되면 코드를 단순하게 유지하는 가장 좋은 해결책이 될 것입니다. 깨끗하게. 감사. –

답변

1

동적으로 쿼리를 작성하십시오. $VAR 상태가 데이터에 의존하지 않는 것 같습니다. 그럼 당신이 할 수 있습니다 (PHP의 예) :

$fields = 'field_a' ; 
if ($VAR == 'yes') $fields .= ', field_b' ; // and so on 
$query = "SELECT $fields FROM table" ; 
+0

PHP를 사용하지 않기 때문에 사용할 수 없습니다. 내 길은'커다 '였고' -f 1-2,4-99 < csv0.txt > csv.txt' 아무튼 고마워! –