在我的MySQL表中,我有一个列id
,它存储了一些非常大的整数。我在我的Node.js代码中有一个查询,它从该表中获取记录。最近我注意到一些提取的INT是错误的。例如,如果MySQL中的id
为10152687447723705
,则Node.js将其解释为10152687447723704
。我已经知道这是由浮点运算引起的,因为Javascript在精度方面变得不稳定,而且这个数字很大。
所以我需要一种方法在它到达Node之前将这个数字转换为字符串,即在MySQL查询本身。
另一个选择是将列转换为VARCHAR,但这在这里是一个坏主意,因为它是一个唯一的索引列,并且有很多搜索使用它。
我遇到过使用CONCAT
的一些建议,但是在这种情况下无法理解语法应该是什么,以及它是否适用。
答案 0 :(得分:2)
要将列结果从int转换为字符串,请使用CONVERT
SELECT CONVERT(id,char)as id_str 来自my_table 在哪里......
答案 1 :(得分:1)
只需将其转换为查询
中的字符串即可SELECT CAST(floatfield AS char) AS converted