mysql Json 字段操作
MySQL 从 5.7 版本开始支持 JSON 数据类型。JSON 数据类型可以存储 JSON 格式的数据,包括字符串、数值、数组、对象等。
创建 JSON 字段
要创建 JSON 字段,您可以使用 CREATE TABLE
语句。例如,要创建一个名为 users
的表,其中有一个名为 profile
的 JSON 字段,您可以使用以下语句:
1 | CREATE TABLE users ( |
插入 JSON 数据
要插入 JSON 数据,您可以使用 INSERT INTO
语句。例如,要插入以下 JSON 数据:
1 | { |
您可以使用以下语句:
1 | INSERT INTO users (name, profile) VALUES ("John Doe", '{"name": "John Doe", "age": 30, "address": {"street": "Main Street", "city": "San Francisco", "state": "CA"}}'); |
查询 JSON 数据
要查询 JSON 数据,您可以使用 SELECT
语句。例如,要查询 users
表中所有用户的姓名和年龄,您可以使用以下语句:
1 | SELECT name, JSON_EXTRACT(profile, '$.age') AS age FROM users; |
这将返回以下结果:
1 | name | age |
您还可以使用 JSON_QUERY
函数来查询 JSON 数据中的特定属性。例如,要查询 users
表中所有用户的地址,您可以使用以下语句:
1 | SELECT name, JSON_QUERY(profile, '$.address') AS address FROM users; |
这将返回以下结果:
1 | name | address |
更新 JSON 数据
要更新 JSON 数据,您可以使用 UPDATE
语句。例如,要更新 users
表中 John Doe
的地址,您可以使用以下语句:
1 | UPDATE users SET profile = JSON_SET(profile, '$.address.city', 'Los Angeles') WHERE name = 'John Doe'; |
这将更新 John Doe
的地址为 {street": "Main Street", "city": "Los Angeles", "state": "CA"}
。
删除 JSON 数据
要删除 JSON 数据,您可以使用 DELETE
语句。例如,要删除 users
表中 John Doe
的地址,您可以使用以下语句:
1 | DELETE FROM users WHERE name = 'John Doe'; |
这将从 users
表中删除 John Doe
的记录。
JSON 字段的其他操作
MySQL 还支持以下 JSON 字段的操作:
JSON_TYPE()
:返回 JSON 数据的类型。JSON_LENGTH()
:返回 JSON 数据的长度。JSON_CONTAINS()
:检查 JSON 数据是否包含指定的子字符串。JSON_MERGE()
:合并两个 JSON 数据。JSON_OBJECT()
:创建一个空 JSON 对象。JSON_ARRAY()
:创建一个空 JSON 数组。