mysql添加存储在用户定义变量中的两个二进制值

iih3973s  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(308)

我有一个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?
谢谢您。

ehxuflar

ehxuflar1#

你可以用 CONV 要将其转换为十进制,请执行加法,然后再转换回二进制。 CONV 不介意它的输入值是整数还是字符串。

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

例如

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

输出:

100100011001110000001001000

相关问题