如何在整数列中存储64位字符串?

时间:2013-12-16 10:13:34

标签: mysql coldfusion

我有一个列,其中我将domain_name转换为64位bigint字符串。

成功转换它。

CONV(SUBSTRING(CAST(SHA(TRIM("#arguments.domain_name#")) AS CHAR), 1, 16), 16, 10),

我想在另一个表中使用这个转换后的字符串并尝试将其存储为Integer。当我尝试像这样投射它时

CAST(arguments.siteid AS INT(11) AS INTEGER)

得到错误;您有SQL语法错误。

我试图以另一种方式存储它,如

<cfqueryparam value="#arguments.siteid#" cfsqltype="cf_sql_integer" />

虽然siteid为2147483647,但它正在存储其他内容,例如14177909183865716377。 任何人都可以帮助我如何施展它?

1 个答案:

答案 0 :(得分:5)

将评论中的观察结果升级为答案,因为事实确实如此:

  

我想你会发现2147483647是你可以投入的最大价值   整数。我认为,您需要使用未签名的BIGINT,基于文档:“MySQL 5.0 Reference Manual :: 11 Data Types :: Integer Types (Exact Value)”。