如何在SELECT上将unsigned int乘以-1?

时间:2013-08-26 19:40:41

标签: mysql

我需要操纵无符号整数乘以-1。

当我尝试它时,它只返回一个围绕最大可表示值的随机值。

2 个答案:

答案 0 :(得分:2)

将结果投射到查询中。

SELECT CAST( fieldname * -1 AS SIGNED ) FROM ...
-- or
SELECT CONVERT ( fieldname * -1, SIGNED ) FROM ...

http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html

答案 1 :(得分:1)

如果您希望unsigned int变量中的值为负,则不会得到它,因为数据类型为 unsigned 。它只能支持+ ve值。

对于数据类型 int :有符号范围是-2147483648到2147483647.无符号范围是0到4294967295。

乘以-1会发生,结果也将是相同的数据类型(unsigned int),其MSB(最高有效位)将为1来表示负数。

将结果转换或转换为有符号的int以获得所需内容。