使用SQL从序列化数组中提取标签

时间:2016-06-02 19:05:16

标签: sql arrays json gravity-forms-plugin

我无法控制这些数据是如何存储的(我知道规范化数据对于sql会更好),因为它是通过WordPress GravityForms插件保存的。该插件使用序列化数组来定义问题id(field_id),问题标签(label)。我的目标是以下列格式提取这三个值:

field_id   label
1          1. I know my organization’s mission (what it is trying to accomplish).
2          2. I know my organization’s vision (where it is trying to go in the future).

Here is the serialized array.

任何人都可以提供一个具体的例子来说明如何用sql解析这些值吗?

1 个答案:

答案 0 :(得分:0)

一个具体的例子,没有。这种东西很复杂。如果你正在使用直接json格式的数据,这里有几个选项,其中没有一个是简单的。

您可以构建自己的解析器。呸。

你可以升级你刚刚发布的SQL 2016所需的一切,并希望内置的json工具能够满足你的需求(我听说过它们的相关内容,但不知道它们的最终形式是什么样的太,现在更新所有的数据库服务器,哦。当然。)

在SimpleTalk上的Phil Factor构建了一个json T-SQL解析器(https://www.simple-talk.com/sql/t-sql-programming/consuming-json-strings-in-sql-server/)。它看起来很可怕并且可能运行不佳,但它可以做到这一点。

该文章的评论中隐藏着John Galt建立的CLR工具的链接(https://github.com/jgcoding/J-SQL)。我成功地使用了这个,虽然我没有做过任何太复杂的事情。 (如果你是json相对简单,这可以解决问题。)

还有其他适用于SQL的json解析器,有些是免费的,有些是出售的。关键是不要试着写自己的,而是找到并使用别人的解决方案来满足你的要求。