数値文字列(任意のサイズ) -> 複数の整数
質問
データベースに BIGINT データ (64 ビット整数) があるのに、実行している PHP のバージョンが 32 ビットのみであるため、問題が発生しています。
したがって、テーブルから値を取り出すと、基数 10 の 64 ビット整数を表す数値文字列が得られます。私が理想的にやりたいのは、64 ビット整数をビットマスクとして使用することです。したがって、2 つの 32 ビット整数 (1 つは上位部分を表し、もう 1 つは下位部分を表します) または基数 2 の数値文字列のいずれかに移動する必要があります。
問題は、私の PHP が 32 ビットのみであるため、単純に乗算できないことです。私は行き詰まっていますか?
解決
あなたはMySQLのビットシフト演算子を使用することができますする 2つの32ビット整数に64ビット整数を分割します。だから、あなたが選択することができます:
select (myBigIntField & 0xffffffff) as lowerHalf,
(myBigIntField >> 32) as upperHalf
他のヒント
所属していません StackOverflow