使用MySQL 5.7查詢JSON數據
JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,它易于閱讀和編寫,同時也易于解析和生成。MySQL 5.7開始支持JSON類型,允許用戶存儲和查詢JSON格式的數據。
1. 存儲JSON數據
在MySQL中,可以使用JSON函數將JSON字符串存儲到JSON類型的字段中。例如,創建一個名為“info”的JSON類型的字段:
CREATE TABLE `employees` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL,
`info` JSON,
PRIMARY KEY (`id`)
);
然后使用INSERT語句將JSON字符串存儲到“info”字段中:
INSERT INTO `employees` (`name`, `info`)
VALUES ('John Doe', '{"age": 30, "gender": "male", "address": {"city": "New York", "state": "NY"}}');
2. 查詢JSON數據
在MySQL 5.7中,可以使用JSON函數從JSON類型字段中查詢數據。
例如,查詢名為“John Doe”的年齡:
SELECT JSON_EXTRACT(info, '$.age') AS age FROM employees WHERE name = 'John Doe';
3. 使用JSON函數
MySQL 5.7提供了一系列JSON函數,可以在查詢JSON數據時使用。
JSON_EXTRACT函數用于從JSON類型字段中提取值。例如,提取名為“John Doe”的地址:
SELECT JSON_EXTRACT(info, '$.address') AS address FROM employees WHERE name = 'John Doe';
JSON_UNQUOTE函數用于去掉JSON字符串中的雙引號。例如,去掉“John Doe”的地址中的雙引號:
SELECT JSON_UNQUOTE(JSON_EXTRACT(info, '$.address.city')) AS city FROM employees WHERE name = 'John Doe';
4. 搜索JSON數據
MySQL 5.7允許在JSON類型字段中搜索數據。例如,查詢名字中包含“John”的員工:
SELECT * FROM employees WHERE JSON_SEARCH(info, 'one', '%John%') IS NOT NULL;
以上是使用MySQL 5.7查詢JSON數據的基本操作,可以方便的處理JSON類型的數據。