从BLOB中选择几个字节并在MySQL中将它们转换为整数

时间:2018-04-18 12:04:05

标签: mysql blob

我的表有BLOB字段,包含7200个字节。

CREATE TABLE `data` 
(
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `metric_id` int(11) DEFAULT NULL,
  `ts` date DEFAULT NULL,
  `values` mediumblob,
  PRIMARY KEY (`id`)
)

我用它来存储一小时内每秒收集的一些值,以减少大数据库中的行数。在我的应用程序中,一切都很好用,它在C#中处理我的BLOB-s,但我在查询MySQL查询中的数据时遇到了问题。

例如 - 我想选择前2个字节并将它们(在MySQL Workbench中)显示为无符号整数。

我该怎么做?

到目前为止,我已经尝试过这个:

SELECT *, cast(substring(`values`, 1, 2) as INTEGER) FROM gs.data limit 10

和此:

SELECT *, convert(substring(`values`, 1, 2), INTEGER) FROM gs.data limit 10

但它总是返回0.

1 个答案:

答案 0 :(得分:0)

假设列 c1BLOB 类型,其中数据存储为 HEX

以下 sql 会将 c1BLOB 类型转换为 INT

select CONV(HEX(c1), 16, 10) from table_name;