从INT列中获取一个条目作为字符串?

时间:2014-12-17 17:37:06

标签: mysql node-mysql

在我的MySQL表中,我有一个列id,它存储了一些非常大的整数。我在我的Node.js代码中有一个查询,它从该表中获取记录。最近我注意到一些提取的INT是错误的。例如,如果MySQL中的id10152687447723705,则Node.js将其解释为10152687447723704。我已经知道这是由浮点运算引起的,因为Javascript在精度方面变得不稳定,而且这个数字很大。

所以我需要一种方法在它到达Node之前将这个数字转换为字符串,即在MySQL查询本身。

另一个选择是将列转换为VARCHAR,但这在这里是一个坏主意,因为它是一个唯一的索引列,并且有很多搜索使用它。

我遇到过使用CONCAT的一些建议,但是在这种情况下无法理解语法应该是什么,以及它是否适用。

2 个答案:

答案 0 :(得分:2)

要将列结果从int转换为字符串,请使用CONVERT

SELECT CONVERT(id,char)as id_str 来自my_table 在哪里......

答案 1 :(得分:1)

只需将其转换为查询

中的字符串即可
SELECT CAST(floatfield AS char) AS converted