کار با دیتاتایپ JSON در MySQL - قسمت دوم
نویسنده: سیروان عفیفی
تاریخ: ۱۳۹۹/۰۸/۱۹ ۲۲:۱۵
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
INSERT INTO tableName VALUES (
'{ "name": "User1", "age": 41 }'
); INSERT INTO tableName VALUES (
JSON_ARRAY(
JSON_OBJECT(
"id", 1,
"name", "User1",
"age", 31,
"skills", JSON_ARRAY("JS", "DB", "Git"),
"address", JSON_OBJECT(
"country", "Iran",
"city", "Tehran")
),
JSON_OBJECT(
"id", 2,
"name", "User2",
"age", 31,
"skills", JSON_ARRAY("C#"),
"address", JSON_OBJECT(
"country", "Iran",
"city", "Sanandaj"
)
)
)
); UPDATE experiments.tableName
SET jsonData = JSON_ARRAY_APPEND(jsonData,
'$[1].skills',
'JS',
'$[1].skills',
'DB',
'$[1].skills',
'Kotlin'
)
-- ["C#", "JS", "DB", "Kotlin"] UPDATE experiments.tableName
SET
jsonData = JSON_ARRAY_INSERT(jsonData, '$[1].skills[4]', 'TS')
-- ["C#", "JS", "DB", "Kotlin", "TS"] UPDATE experiments.tableName
SET
jsonData = JSON_INSERT(jsonData,
'$[1].address.location',
JSON_OBJECT('phone', 8989898)) UPDATE experiments.tableName
SET
jsonData = JSON_REPLACE(jsonData,
'$[1].address.location.phone',
12345656) UPDATE experiments.tableName
SET
jsonData = JSON_REMOVE(jsonData, '$[1].address') UPDATE experiments.tableName
SET
jsonData = JSON_SET(jsonData,
'$[1].address',
JSON_OBJECT('country',
'Iran',
'city',
'-',
'phone',
12345
));
/*
{ location: { "city": "-", "phone": 12345, "country": "Iran" } }
*/
UPDATE experiments.tableName
SET
jsonData = JSON_SET(jsonData,
'$[1].address.city',
'Tehran');
/*
{ location: { "city": "-", "phone": 12345, "country": "Iran" } }
*/
UPDATE experiments.tableName
SET jsonData = JSON_SET(jsonData, '$[1].address.postcode', '0098');
/*
{ location: {"city": "Tehran", "phone": 12345, "country": "Iran", "postcode": '0098' } }
*/ SELECT
JSON_EXTRACT(jsonData, '$[1].address.city')
FROM
experiments.tableName;
-- "Tehran"
SELECT
JSON_UNQUOTE(JSON_EXTRACT(jsonData, '$[1].address.city'))
FROM
experiments.tableName;
-- Tehran SELECT
jsonData -> '$[1].address.city'
FROM
experiments.tableName;
-- "Tehran" SELECT
jsonData ->> '$[1].address.city'
FROM
experiments.tableName;
-- Tehran SELECT
jsonData ->> '$[1].address.city'
FROM
experiments.tableName
WHERE jsonData ->> '$[1].address.city' = 'Tehran'; SELECT
JSON_MERGE_PRESERVE('{
"id": "1",
"name": "Product One",
"price": 12.45,
"discount": 10,
"rating": 4,
"category": ["fashion", "men"],
"tags": ["fashion", "men", "jacket", "full sleeve"]
}',
'{
"id": "2",
"name": "Product Two",
"price": 30,
"discount": 0,
"rating": 3,
"category": ["fashion", "men"],
"tags": ["fashion", "men", "jacket", "full sleeve"]
}'); {
"id": ["1", "2"],
"name": ["Product One", "Product Two"],
"tags": [
"fashion",
"men",
"jacket",
"full sleeve",
"fashion",
"men",
"jacket",
"full sleeve"
],
"price": [12.45, 30],
"rating": [4, 3],
"category": ["fashion", "men", "fashion", "men"],
"discount": [10, 0]
} SELECT JSON_MERGE_PATCH('{
"id": "1",
"name": "Product One",
"price": 12.45,
"discount": 10,
"rating": 4,
"category": ["fashion", "men"],
"tags": ["fashion", "men", "jacket", "full sleeve"],
"sku": "asdf123"
}',
'{
"id": "2",
"name": "Product Two",
"price": 30,
"discount": 0,
"rating": 3,
"category": ["fashion", "men"],
"tags": ["fashion", "men", "jacket", "full sleeve"]
}'); {
"id": "2",
"sku": "asdf123",
"name": "Product Two",
"tags": ["fashion", "men", "jacket", "full sleeve"],
"price": 30,
"rating": 3,
"category": ["fashion", "men"],
"discount": 0
}