我遇到了一个问题,因为我的数据库有 BIGINT 数据(64 位整数),但我运行的 PHP 版本只有 32 位。
因此,当我从表中提取值时,我最终得到一个表示以 10 为底的 64 位整数的数字字符串。理想情况下,我想做的是使用 64 位整数作为位掩码。所以我需要选择两个 32 位整数(一个代表上半部分,一个代表下半部分)或以 2 为底的数字字符串。
问题是我不能只是乘以它,因为我的 PHP 只有 32 位。我卡住了吗?
您可以使用 MySQL 的位移运算符将 64 位整数拆分为两个 32 位整数。因此,您可以选择:
select (myBigIntField & 0xffffffff) as lowerHalf,
(myBigIntField >> 32) as upperHalf