从blob字段转换为数字的字节数

时间:2013-09-17 03:16:25

标签: mysql

我有一个表有一个名为bindata的blob字段。 bindata总是包含7个字节。前四个是整数(我认为未签名,db不是我的。)

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

我是mySQL的新手,但从文档中我看到我可能不得不通过这样的方式使用conv函数:

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

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

由于

1 个答案:

答案 0 :(得分: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;

这是Demo in SQLFiddle