2017-01-27 4 views
3

Ich versuche, einige PHP-Code in MySQL-Code zu konvertieren. Hier ist, was passiert:MySQL bitweise NOT-Operation liefert nicht den gewünschten Wert

In PHP: Ich versuche bitweise nicht auf eine Zahl zu verwenden, und das ist das Ergebnis, das ich

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

Das Ergebnis in PHP ist genau das, was ich brauche.

In MySQL: Wenn ich versuche, das gleiche hier zu tun, bekomme ich eine völlig andere Antwort.

select ~(17998320);  Result: 18446744073691553295 

Ich denke, es ist etwas in Bezug auf BIGINT. Wie kann ich das Verhalten von PHP in MySQL replizieren?

+0

Könnten Sie uns zur Verfügung stellen die Struktur der Tabelle und der Insert-Anweisung? –

+0

~ n ist das gleiche wie (-1 -n), so dass Sie SELECT (-1 - Zahl) AS-Ergebnis verwenden können –

Antwort

2

Ich habe herausgefunden, was das Problem war!

Es gibt mir den Wert in 2 Kompliment Form. So können Sie den richtigen Wert erhalten, indem Sie manuell darauf zugreifen.

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

Dank sowieso für die Hilfe :)

Verwandte Themen