Я пытаюсь преобразовать некоторый код PHP в код MySQL. Вот что происходит:
В PHP:
Я пытаюсь использовать поразрядно не на число, и это результат, который я получаю
var_dump(~(17998320)); Result: -17998321
Результат в PHP именно то, что мне нужно.
В MySQL:
Когда я пытаюсь сделать то же самое здесь, я получаю совершенно другой ответ.
select ~(17998320); Result: 18446744073691553295
Я думаю, это что-то относительно BIGINT. Как я могу повторить поведение, которое я вижу на PHP в MySQL?
Я понял, в чем проблема!
Это дает мне значение в форме комплимента 2. Таким образом, вы можете получить правильное значение, введя его вручную.
select -1 * (~((~(17998320)) - 1))
В любом случае спасибо за помощь 🙂
Других решений пока нет …