【发布时间】:2015-01-02 09:41:08
【问题描述】:
我需要有关如何在 MySQL 中解析 JSON 数据的帮助。
我可以解析一个名为 config 的列,其中包含如下数据:
{"encounterId":"f45bf821-98e1-4496-82ef-047971e168cb","providerId":"38001853-d2e1-4361-9fff-cfca1aedf406","patientId":"f4d04edb-652f-427c-ac25-6fecbda2a0aa","obs":[{"conceptId":"4e903795-ad79-48fc-851e-9e67c9628e6b","value":0.0},{"conceptId":"5300c3e4-3b53-4a0b-874b-3060d18cec9b","value":"Q"},{"conceptId":"dded4485-6160-4791-a13d-16c87f5004dc","value":"000019"},{"conceptId":"4e503f63-caa0-419a-8670-112441d228da","value":"girl"}],"dateCreated":"Dec 5, 2012 9:39:01 AM","formId":"ETAT","locationId":"","created":1354693141902}
通过使用
select common_schema.get_option(be.config,'encounterid') AS eid
, common_schema.get_option(be.config,'providerid') AS gender
, common_schema.get_option(be.config,'patientid') AS pid
from bencounter be
得到我需要的东西。
但是,我无法获取“obs”的数据,它是字段概念 ID 和值的几“行”。
在 obs 的“集合”之后对字段的任何引用都返回 null
select common_schema.get_option(be.config,'encounterid') AS eid
, common_schema.get_option(be.config,'providerid') AS gender
, common_schema.get_option(be.config,'patientid') AS pid
, common_schema.get_option(be.config,'formId') AS formid -- THIS RETURNS NULL
from bencounter be
谁能帮我解决这个问题。
我想直接在 MySQL 中解决这个问题...
克莱门斯
【问题讨论】:
-
您已经在使用一些奇怪的 hacky 扩展语法。为什么不使用适合此的数据库?
-
谢谢。数据已经在我继承的 MySQL 数据库中。我必须找到一种方法来解析数据。遇到这种情况我该怎么办?
-
提取 JSON 并在您的应用程序中解析它。尝试在 MySQL 中执行此操作是愚蠢的,并且容易导致灾难。