MySQL按位NOT操作未返回所需的值

时间:2017-01-27 16:01:09

标签: php mysql sql bit-manipulation bitwise-operators

我正在尝试将一些PHP代码转换为MySQL代码。这是发生的事情:

在PHP中: 我正在尝试使用按位而不是数字,这是我得到的结果

var_dump(~(17998320));       Result: -17998321

PHP中的结果正是我所需要的。

在MySQL中: 当我尝试在这里做同样的事情时,我会得到一个完全不同的答案。

select ~(17998320);      Result: 18446744073691553295

我想这是关于BIGINT的事情。如何将我在PHP上看到的行为复制到MySQL中?

1 个答案:

答案 0 :(得分:2)

我弄清楚问题是什么!

它以2的赞美形式给了我价值。因此,您可以通过手动进入它来获得正确的价值。

select -1 * (~((~(17998320)) - 1))

非常感谢所有的帮助:)