MySQL添加存储在用户定义变量中的两个二进制值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL添加存储在用户定义变量中的两个二进制值相关的知识,希望对你有一定的参考价值。
我有一个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?
谢谢。
答案
您可以使用CONV
将其转换为十进制,执行添加然后转换回二进制。 CONV
不介意它的输入值是整数还是字符串。
SELECT CONV(CONV(@lat, 2, 10) + 1, 10, 2)
EG
SELECT CONV(CONV('00000100100011001110000001000111',2,10)+1,10,2)
输出:
100100011001110000001001000
以上是关于MySQL添加存储在用户定义变量中的两个二进制值的主要内容,如果未能解决你的问题,请参考以下文章