【问题标题】:How to get just a subset of a blob如何仅获取 blob 的子集
【发布时间】:2016-08-18 20:07:59
【问题描述】:

这里也提出了同样的问题:MySQL blob: how to get just a subset of the stored data。 但是,提供的解决方案不起作用,SUBSTRINGMID 都不能正常使用 BLOB 数据类型。我是否错过了这个查询:SELECT SUBSTRING(file, 12, 48) FROM log WHERE id=8,子集从位置 1 开始,长度有点到 48。 谢谢。

【问题讨论】:

  • 查询中的子集从 12 开始,而不是 1?
  • QueryA: SELECT SUBSTRING(data, 12, 48) FROM file WHERE id=2138 导致 0xe2e3cfd30a332030206f626a0a3c3c202f54797065202f58... QueryB: SELECT SUBSTRING(data, 1, 48) 从文件 WHERE=8 0x255044462d312e330a2520e2e3cfd30a332030206f626a0a ... 有一些转变,但我没有看到逻辑。谢谢你,迈克

标签: mysql substring blob


【解决方案1】:

SUBSTRING 函数似乎对我在 VARBINARYBLOB 上运行良好,至少在 MariaDB 5.6.20 中:

MySQL [gps]> show create table KV \G
*************************** 1. row ***************************
       Table: KV
Create Table: CREATE TABLE `KV` (
  `kv_key` varbinary(767) NOT NULL,
  `kv_value` longblob NOT NULL,
  PRIMARY KEY (`kv_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
1 row in set (0.00 sec)

MySQL [gps]> select HEX(kv_key), HEX(kv_value) from KV where kv_key > x'99' limit 10;
+--------------------------------------------------------+------------------------+
| HEX(kv_key)                                            | HEX(kv_value)          |
+--------------------------------------------------------+------------------------+
| FC0696FC1A4AD423B65465FC3D7BBBAFCBDCD8FC657A8BB203FE0F |                        |
| FC114A8CF4C01BD7                                       | 01FE589B5E0200         |
| FC114A8CF4C01BD7FCC991                                 | 55414200               |
| FC114AF271B994BF                                       | 01FE589B5E0200         |
| FC114AF271B994BFFCC991                                 | 434F50442050696C6F7400 |
| FC1A4AD423B65465                                       | 01FE589B5E0200         |
| FC1A4AD423B65465FC2550FCB7D4D490FCA2E4                 |                        |
+--------------------------------------------------------+------------------------+
10 rows in set (0.00 sec)

MySQL [gps]> select HEX(SUBSTRING(kv_key, 4, 4)), HEX(kv_value) from KV where kv_key > x'99' limit 10;
+------------------------------+------------------------+
| HEX(SUBSTRING(kv_key, 4, 4)) | HEX(kv_value)          |
+------------------------------+------------------------+
| FC1A4AD4                     |                        |
| 8CF4C01B                     | 01FE589B5E0200         |
| 8CF4C01B                     | 55414200               |
| F271B994                     | 01FE589B5E0200         |
| F271B994                     | 434F50442050696C6F7400 |
| D423B654                     | 01FE589B5E0200         |
| D423B654                     |                        |
+------------------------------+------------------------+
10 rows in set (0.01 sec)

MySQL [gps]> select HEX(kv_key), HEX(SUBSTRING(kv_value, 4, 4)) from KV where kv_key > x'99' limit 10;
+--------------------------------------------------------+--------------------------------+
| HEX(kv_key)                                            | HEX(SUBSTRING(kv_value, 4, 4)) |
+--------------------------------------------------------+--------------------------------+
| FC0696FC1A4AD423B65465FC3D7BBBAFCBDCD8FC657A8BB203FE0F |                                |
| FC114A8CF4C01BD7                                       | 9B5E0200                       |
| FC114A8CF4C01BD7FCC991                                 | 00                             |
| FC114AF271B994BF                                       | 9B5E0200                       |
| FC114AF271B994BFFCC991                                 | 44205069                       |
| FC1A4AD423B65465                                       | 9B5E0200                       |
| FC1A4AD423B65465FC2550FCB7D4D490FCA2E4                 |                                |
+--------------------------------------------------------+--------------------------------+
10 rows in set (0.00 sec)

【讨论】:

    猜你喜欢
    • 2011-09-26
    • 2019-06-29
    • 2019-08-12
    • 2016-12-19
    • 1970-01-01
    • 2013-12-04
    • 2018-07-13
    • 2011-05-10
    • 2019-10-11
    相关资源
    最近更新 更多