4

データを csv ファイルにエクスポートしようとしていますが、先頭のゼロが切り捨てられています...プルした後にデータを変更できないため、LPAD はオプションではありません。また、ID は設定された長さではありません... 長さは 6 文字、または最大 11 文字です。文字も含まれる場合があります (その場合、csv はこれらの値を文字列として表示します。とにかく、先行ゼロのフィールドにはデータベースの先行ゼロであり、varchar として保存されます.これらの値を取得し、csv にゼロを含めて表示する必要があります。

SELECT
    'ID',
    'Par 1',
    'Par 2'
UNION
(SELECT
    result.id as 'ID',      
    COALESCE(sum(if(result.parameter = '10001', result.result, NULL)),'-') as 'Par 1',
    COALESCE(sum(if(result.parameter = '10002', result.result, NULL)),'-') as 'Par 2'
    INTO OUTFILE '/tmp/file.csv' FIELDS TERMINATED BY ','  ENCLOSED BY '\"' 
FROM (
    SELECT
        event.id,
        resultset.parameter_cd,
        resultset.result
    FROM event
    Inner Join resultset ON resultset.id = event.id
    ) as result
group by result.id
order by
    result.id ASC )

この場合、「id」には先行ゼロがある場合があります... mysql からの結果セットにはそれらが表示されますが、エクスポートされた csv では完全に削除されています????

4

1 に答える 1

0

回避策として、ID を二重引用符で囲み、enclosed by数値フィールドには必要ないので取り出します。

(SELECT
    concat ('\"', result.id, '\"') as 'ID',
    COALESCE(sum(if(result.parameter = '10001', result.result, NULL)),'-') as 'Par 1',
    COALESCE(sum(if(result.parameter = '10002', result.result, NULL)),'-') as 'Par 2'
    INTO OUTFILE '/tmp/file.csv' FIELDS TERMINATED BY ','    
于 2012-10-18T16:54:39.237 に答える