MySQL从5.7.8版本开始支持JSON数据类型,允许存储和查询JSON格式的数据。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。
MySQL中的JSON数据类型主要有两种:
假设我们有一个名为users的表,其中有一个info列是JSON类型,存储了用户的详细信息。
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
info JSON
);插入一条记录:
INSERT INTO users (name, info) VALUES ('Alice', '{"age": 30, "city": "New York"}');查询JSON字段:
SELECT name, info->'$.age' AS age, info->'$.city' AS city FROM users WHERE name = 'Alice';修改JSON字段:
UPDATE users SET info = JSON_SET(info, '$.age', 31) WHERE name = 'Alice';原因:可能是由于JSON字符串格式不正确。
解决方法:
JSON_VALID()函数检查JSON字符串是否有效。SELECT JSON_VALID('{"name": "Alice"}'); -- 返回1,表示有效
SELECT JSON_VALID('{"name": Alice}'); -- 返回0,表示无效原因:
解决方法:
JSON_EXTRACT()或->运算符时,确保键名正确。SELECT info->'$.age' FROM users WHERE name = 'Alice'; -- 确保'age'键存在