没有Json的MySQL视图查询来自包含一些Json对象的表

时间:2012-10-21 14:13:41

标签: mysql sql json

我一直试图在没有Json的情况下从包含一些Json对象的现有MySQL表创建一个新的MySQL视图。表1是当前表。表2是从表1派生的新MySQL视图。表2的内容将始终反映表1的内容。区别仅在于结构。

下面是我们的示例上下文的简化表,其中实际上有超过20列。

表1(3列)

user_id | name |          params
---------------------------------------------
   1    | john |{"age":"26","gender":"male"}
   2    | amy  |{"age":"28","gender":"female"}

表2(4栏)

user_id | name | age | gender
-----------------------------
   1    | john | 26  | male
   2    | amy  | 28  | female

数据流如下: 用户可以随时键入来自第三方自定义表单的数据并保存到表1中。但是,数据也需要从表2格式中提取,也可以随时提取。

我们如何只使用SQL查询来实现这一目标?先感谢您。这肯定会帮助许多开发人员应对Json作为新标准。干杯!

1 个答案:

答案 0 :(得分:2)

你可以用一个相当难看的字符串函数组合来做到这一点,假设你的table2在上面:

SELECT user_id,name,
substring_index(substring(params,locate('age":"',params)+6),'"',1) as age 
from table_2

您可以按照相同的性别模式。

根据您对JSON格式的一致性,这有点脆弱。

忘记提及文档可以在MySQL docs

查看