mysql - 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 来添加两个二进制文字
IE。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)
例如
SELECT CONV(CONV('00000100100011001110000001000111',2,10)+1,10,2)
输出:
100100011001110000001001000
推荐阅读
- php - get_template_part 似乎正在删除 h2 上的一个类
- signals - 正交性在数字信号处理中逼近函数的重要性是什么?
- python - 如何摆脱 GridSpec 中的行之间的空间?
- php - 如何让 ACF 帖子对象只显示 1 个帖子?
- linear-programming - 有没有一种方法可以将某个值分配给 ILOG CPLEX 中的一组决策变量?
- amazon-web-services - AWS Cognito 不使用我的自定义消息 lambda
- c# - 如何将相机旋转限制在特定范围内?
- reactjs - 当没有子父组件时我们可以 React Context
- svg - 旋转后如何计算新坐标?
- rust - 使用 VisitMut 时如何插入 Expr?