什么 SELECT ~0; 做?

Mol*_*zor 2 mysql cast

我最近偶然发现了一个有趣的 Mysql 查询:

SELECT ~0; 结果: 18446744073709551615

这是 bigint unsigned 的最大值。在这种情况下,波浪号运算符会做什么?

Ava*_*rkx 6

它选择 0 的逻辑否定并以隐式转换的数据类型返回它。它不是选择包含全 0 的 8 个字节,而是选择包含全 1 的 8 个字节,返回最大可能的无符号值。