如果我将结果从mysql导出到csv文件,所有值都显示正常,一旦我从mysql执行select命令,结果显示为x.xxxxxe + 07
经验:
select mycolumn from mytable where mycolumn=25744130;
结果如下
2.57441e+07
2.57441e+07
2.57441e+07
...
有没有办法避免这种表现?
答案 0 :(得分:2)
首先 - 请注意,在一般情况下,由于缺少有效数字,例如,2.57441e17
是257441000000000000
,这是不正确的。此外,在这种情况下,您将无法对分数部分说些什么。
假设您想要输出零填充结果而不包含小数部分,您可以使用FORMAT()
:
SELECT REPLACE(FORMAT(f, 0), ',', '') FROM t
像:
mysql> SELECT v, replace(format(v, 0), ',', '') FROM t; +------------+--------------------------------+ | v | replace(format(v, 0), ',', '') | +------------+--------------------------------+ | 2.57441e17 | 257441000000000000 | +------------+--------------------------------+ 1 row in set (0.00 sec)
这将导致字符串值,但对于CSV,所有值实际上都是字符串(所以这是解释的问题)。