【问题标题】:MySQL Regexp on blob columnblob 列上的 MySQL 正则表达式
【发布时间】:2018-06-01 00:20:09
【问题描述】:

我在将 MySQL 的 REGEXP 运算符与 blob 列一起使用时遇到问题。

条款:

WHERE table.blobColumn REGEXP '"postalCode";s:[1-9]'

不会返回单个结果,即使我有数千条记录在其 blob 列值中包含“邮政”。有什么方法可以对 MySQL 中的这种列类型进行 REGEXP 吗?

【问题讨论】:

  • 你为什么使用REGEXP 'postal'你甚至没有使用复杂的正则表达式匹配模式你可以用LIKE %postal%替换它
  • 其实这是我的正则表达式:"postalCode";s:[1-9].
  • 提供一些示例数据并解释您要匹配的内容..
  • @RaymondNijland 我已将序列化的 php 对象存储到表的 blob 列中。这是该列的数据片段:>> s:10:"postalCode";s:5:"55076";s:1 = 1 字段长度。
  • 一个看起来像"postalCode";s:[1-9]+;"[1-9]+ 的正则表达式可能会成功。

标签: mysql sql blob


【解决方案1】:

由于 ASCII NUL 值 ('\0'),对 blob 字段使用 REGEXP 效果不佳。 使其工作的一种方法是在进行 REGEXP 评估之前替换 NUL 值,如下所示:

... WHERE replace(table.blobColumn, '\0', '') REGEXP '"postalCode";s:[1-9]'

【讨论】:

    猜你喜欢
    • 2011-10-05
    • 1970-01-01
    • 2022-08-04
    • 1970-01-01
    • 2020-08-05
    • 2012-01-06
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    相关资源
    最近更新 更多