mysql使用json存list
时间: 2025-01-05 08:36:55 浏览: 6
### 如何在 MySQL 中使用 JSON 类型存储列表数据
#### 创建带有 JSON 列的表格
为了在 MySQL 中存储列表数据作为 JSON 类型,首先需要创建一张包含 JSON 列的表。下面是一个 SQL 命令的例子:
```sql
CREATE TABLE example_table (
id INT AUTO_INCREMENT PRIMARY KEY,
list_data JSON NOT NULL
);
```
此命令会建立名为 `example_table` 的新表,其中有一个用于保存 JSON 数据类型的字段叫做 `list_data`[^3]。
#### 插入列表到 JSON 字段中
一旦有了上述结构的表之后,就可以通过 INSERT 语句向这个表里插入含有数组形式的数据记录了。这里给出一个具体的例子来展示怎样把一组整数存进去:
```sql
INSERT INTO example_table (list_data) VALUES ('[10, 20, 30]');
```
这条指令将会往 `example_table` 添加一条新的记录,在其 `list_data` 属性下放置了一个由三个数值构成的简单列表 `[10, 20, 30]`。
对于更复杂的情况,比如想要储存键值对组成的对象集合时,则可以这样做:
```sql
INSERT INTO example_table (list_data) VALUES ('[
{"name": "Alice", "age": 25},
{"name": "Bob", "age": 30}
]');
```
这段代码片段展示了如何在一个 JSON 数组内嵌套多个关联数组(即字典),每个都代表一个人的信息。
#### 查询 JSON 列中的特定元素
如果要获取某条记录里的某个具体位置上的项目的话,那么可以用 -> 运算符配合索引来完成这项工作。例如读取第一条记录的第一个成员:
```sql
SELECT list_data->'$[0]' FROM example_table WHERE id = 1;
```
这将返回类似于 `"10"` 或者 `{"name": "Alice", "age": 25}` 的结果取决于所选行的实际内容。
另外还可以利用 JSON_EXTRACT 函数来做同样的事情但是更加灵活一些因为它接受路径表达式的参数从而能够定位任意深层次的对象属性:
```sql
SELECT JSON_UNQUOTE(JSON_EXTRACT(list_data, '$[0].name')) AS first_name
FROM example_table
WHERE id = 1 AND JSON_CONTAINS_PATH(list_data, 'one', '$[*].name');
```
以上查询语句不仅限定了只查看第一个名字而且确保只有那些确实存在 name 键的情况下才会显示出来。
阅读全文