包含一些 Json 对象的表中没有 Json 的 MySQL View 查询

标签 mysql sql json

我一直在尝试从包含一些 Json 对象的现有 MySQL 表中创建一个没有 Json 的新 MySQL View 。表 1 是当前表。表 2 是从表 1 派生的新 MySQL View 。表 2 的内容将始终反射(reflect)表 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

数据流是这样的: 在任何时候,用户从第 3 方自定义表单中键入数据并保存到表 1 中。但是,数据也需要随时从表 2 格式中提取。

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

最佳答案

你可以用一个相当丑陋的字符串函数组合来做到这一点,假设你的表是上面的:

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

您可以遵循相同的性别模式。

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

忘记提及文档可以在以下位置查看:MySQL docs

关于包含一些 Json 对象的表中没有 Json 的 MySQL View 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12998610/

相关文章:

php - 如何使用 PHP 删除 JSON 对象的重复数据

mysql - 当我将内连接更改为左连接时,sql错误1064

sql - 如何在 Windows 上的 PostgreSQL 中使用 UTF-8 排序规则创建数据库?

mysql - 通过 MySQL Workbench 连接到 Amazon RDS

sql - 只读用户可以创建表

android - 仅从具有物化路径的表中选择直接后代

ruby-on-rails - 渲染包含 Float::NAN 对象的哈希时,Rails 返回无效的 JSON

javascript - 将 javascript 对象转换为 json 对象

javascript - 每当我点击网站内的页面链接时,我都会注销,如何修复?

php - 如何存储多语言数据?