0

我有一个表,其中包含一个名为 bindata 的 blob 字段。bindata 始终包含 7 个字节。其中前四个是整数(我认为是无符号的,db 不是我的)。

我的问题是如何仅从 bindata 中选择前四个字节并将它们转换为数字?

我是 mySQL 的新手,但从文档中我看到我可能必须通过执行以下操作来使用 conv 函数:

SELECT CONV(<Hex String of first 4 bytes of bindata>,16,10) as myNumber

但我不知道如何只选择 blob 字段的前四个字节。我真的被困在这里了。

谢谢

4

1 回答 1

1

您可以使用字符串函数来获取 blob 中的部分字节。例如:

SELECT id, 
       ((ORD(SUBSTR(`data`, 1, 1)) << 24) +
        (ORD(SUBSTR(`data`, 2, 1)) << 16) +
        (ORD(SUBSTR(`data`, 3, 1)) << 8) +
         ORD(SUBSTR(`data`, 4, 1))) AS num
FROM test;

这是SQLFiddle中的演示

于 2013-09-17T03:50:22.360 回答