我正在尝试将数据导出到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文件中它们完全被剥离了???
CONCAT("'",event.id,"'") as id
,这样可以添加单引号,但在 CSV 文件中会显示出来,客户端无法接受。 - Katherine C