MySQL Добавление двух двоичных значений, хранящихся в пользовательских переменных - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть скрипт SQL ....

SET @lat = 0;

SET @lat = (SELECT (CONV(SUBSTRING(data, 5,8),16,2)) FROM transaction_wtrax WHERE `show` = 0);

SET @lat = REPLACE(@lat, 1, 2);
SET @lat = REPLACE(@lat, 0, 1);
SET @lat = REPLACE(@lat, 2, 0);

Выше приведено двоичное значение для @ lat.

Я бы хотел добавить значение 1 к @lat. Я могу добавить два двоичных литерала, предваряя значения 0b

т. Select 0b10001 + 0b1 (это работает на 100%)

однако следующее не добавляет двоичный файл при работе с пользовательскими переменными ...

Select @lat + 0b1 or Select Concat('0b', @lat) + 0b1 (это не работает)

Как я могу добавить свой @lat к 0b1?

Спасибо.

1 Ответ

0 голосов
/ 10 сентября 2018

Вы можете использовать CONV, чтобы преобразовать его в десятичную систему, выполнить добавление и затем преобразовать обратно в двоичный файл.CONV не возражает, если его входное значение является целым числом или строкой.

SELECT CONV(CONV(@lat, 2, 10) + 1, 10, 2)

например,

SELECT CONV(CONV('00000100100011001110000001000111',2,10)+1,10,2)

Выход:

100100011001110000001001000
...