有没有办法将对象存储在 mySQL 数据库中?

Posted

技术标签:

【中文标题】有没有办法将对象存储在 mySQL 数据库中?【英文标题】:Is there a way to store objects in a mySQL database? 【发布时间】:2020-01-14 10:01:06 【问题描述】:

我有一个使用 mysql 的数据库,称为“用户”。 里面有两张桌子。 “第一”和“第二”。

我使用 javascript 从表单中获取用户信息 作为对象数组。

例如let usersInformation = ["name":"james", "age":"30"]

如何轻松存储每个对象数组?

过去我创建了列,例如“name”,然后将“name”的值存储在该列中。

有没有办法将对象存储在 MySQL 数据库中。 我查找了 ORM 一词,并认为这可能会有所帮助。

【问题讨论】:

MySQL 支持JSON data type。使用... 【参考方案1】:

可以使用 MySQL 的 JSON 数据类型。

mysql> create database user; 

mysql> use user
# Create a table with a json data type
mysql> create table user (json JSON); 

# Insert an array into the field
mysql> insert into user(json) values ('["first", "second", "third", "4th"]'); 

# Insert an object
mysql> insert into user(json) values('"name": "Levi", "last": "Jr"');

mysql> select * from user;
+-------------------------------------+
| json                                |
+-------------------------------------+
| ["first", "second", "third", "4th"] |
| "last": "Jr", "name": "Levi"      |
+-------------------------------------+
2 rows in set (0.00 sec)


您可以使用JSON_EXTRACT 从字段中获取一些信息并在 WHERE 子句中对其进行过滤。

这里是如何使用它:JSON_EXTRACT([field], [expression])),[表达式] 是您从字段中提取信息的方式。

例如:

mysql> select * from user where JSON_EXTRACT(user.json, '$.name') = 'Levi';
+--------------------------------+
| json                           |
+--------------------------------+
| "last": "Jr", "name": "Levi" |
+--------------------------------+
1 row in set (0.00 sec)

mysql> select * from user where JSON_EXTRACT(user.json, '$[0]') = 'first';
+-------------------------------------+
| json                                |
+-------------------------------------+
| ["first", "second", "third", "4th"] |
+-------------------------------------+
1 row in set (0.00 sec)

【讨论】:

【参考方案2】:

在将您的对象发送到查询之前,请将其转换为 json。如果需要,可以将表字段设置为 MEDIUM TEXT

let usersInformation = ["name":"james", "age":"30"];
usersInformation = JSON.stringify(usersInformation);

然后将此发送到您的查询。

【讨论】:

以上是关于有没有办法将对象存储在 mySQL 数据库中?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在没有 xml 或属性文件的情况下将 java 变量/对象存储在应用程序上下文中

将结果行强制转换为对象

有没有办法直接在 mongoDB 中存储 python 对象而不序列化它们

使用 Ajax 将 PHP 嵌入到 javascript 中,以便将 MySQL 数据存储在 javascript 对象中

有没有办法将对象从存储桶复制到 Revit Design Automation 本地路径?

有没有办法获取存储在 firestore 中的数组中对象的索引?