【问题标题】:How to search a MySQL blob column for a partial hex string?如何在 MySQL blob 列中搜索部分十六进制字符串?
【发布时间】:2013-04-23 00:09:03
【问题描述】:

我想通过搜索 Blob 的十六进制字符串值来选择表行。我有一个 blob 值,我想找到它的十六进制表示为 0041b074351bfa1092fd740c146f26ae。我希望能够通过输入全部或部分字符串来选择这一行。这可能吗?

【问题讨论】:

  • 可能会说些愚蠢的话,但您是否只是尝试了 SELECT FROM your_table WHERE blob LIKE '%value%' ?
  • 是的。数据存储为原始字节,但我希望 MySQL 将这些字节转换为十六进制字符串,然后进行搜索,例如 LIKE %value%。如果输入“SELECT FROM your_table WHERE (transactionId LIKE %0041b074351bfa1092fd740c146f26ae%)”不起作用。
  • 注意这种方法的性能问题。如果磁盘空间不是问题,我会创建一个额外的列来存储每个 blob 的十六进制表示,前提是读取查询的数量明显多于写入查询。

标签: mysql sql blob mysql-workbench


【解决方案1】:

试试这个:

SELECT * 
FROM t1
WHERE UNHEX(hex_col) LIKE '%value%';

ps:就性能而言,它可能真的很慢。当心。 ;-)

【讨论】:

    【解决方案2】:

    简单的查询对我来说很好。请尝试这样

    EG。

    选择 *

    来自 YOUR_TABLE_NAME_HERE

    WHERE YOUR_BLOB_FIELD_NAME_HERE LIKE '%SEARCH_TEXT_HERE%'

    【讨论】:

      猜你喜欢
      • 2010-12-02
      • 1970-01-01
      • 1970-01-01
      • 2019-07-27
      • 2016-04-09
      • 2020-10-23
      • 2017-06-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多