我想从表的字符串列中提取一个单词。
description
===========================
abc order_id: 2 xxxx yyy aa
mmm order_id: 3 nn kk yw
预期结果集
order_id
===========================
2
3
表最多有 100 行,文本长度约为 256 个字符,列总是存在一个order_id
。所以性能不是问题。
在 Oracle 中,我可以使用REGEXP_SUBSTR
这个问题。我将如何在 MySQL 中解决这个问题?
编辑 1
我正在使用 LOCATE 和 SUBSTR 来解决问题。代码很丑。写完代码十分钟后,我在诅咒写这么丑代码的家伙。
我没有在 MySQL 文档中找到 REGEXP_SUBSTR 函数。但我希望它存在..
回答: 为什么表不能优化?为什么数据以如此愚蠢的方式存储?
我给出的例子只是表示我要解决的问题。在实际场景中,我使用基于数据库的 3rd 方排队软件来执行异步任务。队列将 Ruby 对象序列化为文本。我无法控制表结构或数据格式。队列中的任务可以重复出现。在我们的测试设置中,一些重复性任务由于数据陈旧而失败。我必须删除这些任务以防止错误。此类错误并不常见,因此我不想维护标准化影子表。