gpt4 book ai didi

mysql - 如何将位数据类型值分配给变量?

转载 作者:行者123 更新时间:2023-11-30 22:13:43 25 4
gpt4 key购买 nike

我有一个这样的表:

// mytable
+---------+-------------+
| id | bitmap |
+---------+-------------+
| int(11) | BIT(10) |
+---------+-------------+
| 1 | 01111111000 |
| 2 | 01111111111 |
| 3 | 00000000001 |
+---------+-------------+

这些是当前和预期输出的一些示例:

示例 1:

SELECT bitmap INTO @var FROM mytable WHERE id = 1;
SELECT @var;
/* Current output: 1016
Expected output: 01111111000
*/

示例 2:

SELECT bitmap INTO @var FROM mytable WHERE id = 2;
SELECT @var;
/* Current output: 1023
Expected output: 01111111111
*/

示例 3:

SELECT bitmap INTO @var FROM mytable WHERE id = 3;
SELECT @var;
/* Current output: 1
Expected output: 00000000001
*/

那我该怎么做呢?如您所见,我正在尝试将该列的原始位值分配给该变量(但似乎存在转换,我如何避免这种情况?)。我真的不知道为什么 @var 不包含二进制值。

最佳答案

您可以使用 CONV(N,from_base,to_base) 函数将该 bitmap 列值的二进制表示形式提供给 @var

SELECT CONV(bitmap,2,2) INTO @var FROM mytable WHERE id = 1;
SELECT @var;

注意:

CONV() 函数

MySQL CONV() 将数字从一个数字基数系统转换为另一个数字基数系统。转换后,函数返回数字的字符串表示形式。

当定义的参数为NULL时,返回值为NULL

最小底数为2,最大底数为36。如果要转换的底数为负数,则该数被视为有符号数。否则,它被视为无符号。

语法:

CONV(num , from_base , to_base );

参数

Name       Description
num A number.
from_base Existing base of the number num.
to_base Base of the number num after conversion.

关于mysql - 如何将位数据类型值分配给变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39187750/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com