【发布时间】:2015-03-10 13:31:15
【问题描述】:
好吧,它宁愿是一件非常简单的事情,但我自己也弄不明白。
在 MYSQL 服务器的存储过程中尝试以下行时,它会将列数据类型转换或设置为 BIGINT 而不是预期的 INT
CASE `L`.`Code` WHEN 'ABCD' THEN 0 ELSE `XL`.`ID` END as XLID
神奇的是,如果我从中删除 0,它会按预期返回 INT 作为数据类型。所以这个 0 肯定是罪魁祸首,但我不明白为什么以及如何解决这个问题?我尝试使用 CAST,但它不允许将 INT 转换为 INT。
会很有帮助。
【问题讨论】:
-
试试:
CASE `L`.`Code` WHEN 'ABCD' THEN CAST('0' AS UNSIGNED) ELSE `XL`.`ID` END AS XLID -
@wchiquito:谢谢,但不,仍然是相同的 BIGINT :-(
-
可能是 MySQL Workbench 进行了转换。
-
@wchiquito:是的,我怀疑是一样的,现在正在调查它,但它仍然很奇怪。问题是,我在应用程序方面遇到了麻烦,除非我在 C# 中特别提到它为 Int64,否则它会给出 InvalidCastException。
标签: mysql amazon-web-services mysql-workbench