집 >데이터 베이스 >MySQL 튜토리얼 >MySQL 5.7의 새로운 기능 | Json 열 및 생성된 열(중간)
첫 번째 제목
1. JSON_ARRAY_APPEND 배열 클래스 추가
이 사용법은 주로 JSON 필드의 값 배열 유형 데이터를 처리하는 데 사용됩니다. 이 함수는 자동으로 배열 형태로 변환되며, 이전 값이 배열의 첫 번째 요소로 사용된 후 추가됩니다:
mysql> SET @j = '["a", ["b", "c"], "d"]';
Append 필드의 두 번째 값 배열에 요소 1:
mysql> SELECT JSON_ARRAY_APPEND(@j, '$[1]', 1); +----------------------------------+ | JSON_ARRAY_APPEND(@j, '$[1]', 1) | +----------------------------------+ | ["a", ["b", "c", 1], "d"] | +----------------------------------+
다음과 같은 형식의 단일 값이 아닌 경우 요소 2를 필드의 첫 번째 값 배열에 추가합니다. 배열인 경우 배열로 변경되어 추가됩니다.
mysql> SELECT JSON_ARRAY_APPEND(@j, '$[0]', 2); +----------------------------------+ | JSON_ARRAY_APPEND(@j, '$[0]', 2) | +----------------------------------+ | [["a", 2], ["b", "c"], "d"] | +----------------------------------+
다음 형식의 단일 값이 아닌 경우 필드에서 두 번째 값의 첫 번째 배열에 요소 3을 추가합니다. 배열로 변경하고 필드에
mysql> SELECT JSON_ARRAY_APPEND(@j, '$[1][0]', 3); +-------------------------------------+ | JSON_ARRAY_APPEND(@j, '$[1][0]', 3) | +-------------------------------------+ | ["a", [["b", 3], "c"], "d"] | +-------------------------------------+
를 추가합니다. 키가 "b"인 값 배열에 "x" 요소를 추가합니다:
mysql> SET @j = '{"a": 1, "b": [2, 3], "c": 4}'; mysql> SELECT JSON_ARRAY_APPEND(@j, '$.b', 'x'); +------------------------------------+ | JSON_ARRAY_APPEND(@j, '$.b', 'x') | +------------------------------------+ | {"a": 1, "b": [2, 3, "x"], "c": 4} | +------------------------------------+
필드에 "c" 키가 있는 값 배열에서 "y" 요소 추가:
mysql> SELECT JSON_ARRAY_APPEND(@j, '$.c', 'y'); +--------------------------------------+ | JSON_ARRAY_APPEND(@j, '$.c', 'y') | +--------------------------------------+ | {"a": 1, "b": [2, 3], "c": [4, "y"]} | +--------------------------------------+
JSON 필드가 표준 JSON인 경우 유형인 경우 이 함수를 사용하면 배열 형식으로 변경되고 값이 추가됩니다:
mysql> SET @j = '{"a": 1}'; mysql> SELECT JSON_ARRAY_APPEND(@j, '$', 'z'); +---------------------------------+ | JSON_ARRAY_APPEND(@j, '$', 'z') | +---------------------------------+ | [{"a": 1}, "z"] | +---------------------------------+
JSON 필드가 표준 JSON 유형인 경우 일괄 추가:
mysql> SELECT JSON_ARRAY_APPEND(@j, '$', 'z','$', 'w'); +---------------------------------+ | JSON_ARRAY_APPEND(@j, '$', 'z') | +---------------------------------+ | [{"a": 1}, "z", "w"] | +---------------------------------+
2. JSON_ARRAY_INSERT 배열 클래스 삽입
이 사용법은 주로 JSON 필드의 값 배열 유형 데이터를 처리하는 데 사용되며, 표준 배열 유형이 아닌 자동으로 배열 형태로 변환됩니다. 이전 값을 배열의 첫 번째 요소로 사용한 다음 추가:
mysql> SET @j = '["a", {"b": [1, 2]}, [3, 4]]';
배열 'x' 요소의 첫 번째 값 뒤에 문자 삽입:
mysql> SELECT JSON_ARRAY_INSERT(@j, '$[1]', 'x'); +------------------------------------+ | JSON_ARRAY_INSERT(@j, '$[1]', 'x') | +------------------------------------+ | ["a", "x", {"b": [1, 2]}, [3, 4]] |
문자 'x 삽입 배열의 첫 번째 값 앞에 '' 문자를 100번째 값 뒤에 삽입하세요. 너무 길면 마지막 값 뒤에 삽입하세요.
mysql> SELECT JSON_ARRAY_INSERT(@j, '$[0]', 'x'); +------------------------------------+ | JSON_ARRAY_INSERT(@j, '$[1]', 'x') | +------------------------------------+ | ["x","a", {"b": [1, 2]}, [3, 4]] | +------------------------------------+
배열의 첫 번째 값에 , 'b' 키가 있는 값 배열 1 값 앞에 문자 요소 'x'를 입력합니다.
mysql> SELECT JSON_ARRAY_INSERT(@j, '$[100]', 'x'); +--------------------------------------+ | JSON_ARRAY_INSERT(@j, '$[100]', 'x') | +--------------------------------------+ | ["a", {"b": [1, 2]}, [3, 4], "x"] | +--------------------------------------+
mysql> SELECT JSON_ARRAY_INSERT(@j, '$[1].b[0]', 'x'); +-----------------------------------------+ | JSON_ARRAY_INSERT(@j, '$[1].b[0]', 'x') | +-----------------------------------------+ | ["a", {"b": ["x", 1, 2]}, [3, 4]] | +-----------------------------------------+
배열 요소 일괄 삽입:
mysql> SELECT JSON_ARRAY_INSERT(@j, '$[2][1]', 'y'); +---------------------------------------+ | JSON_ARRAY_INSERT(@j, '$[2][1]', 'y') | +---------------------------------------+ | ["a", {"b": [1, 2]}, [3, "y", 4]] | +---------------------------------------+
3. JSON_INSERT 표준 JSON 값 삽입
mysql> SELECT JSON_ARRAY_INSERT(@j, '$[0]', 'x', '$[2][1]', 'y'); +----------------------------------------------------+ | JSON_ARRAY_INSERT(@j, '$[0]', 'x', '$[2][1]', 'y') | +----------------------------------------------------+ | ["x", "a", {"b": [1, 2]}, [3, 4]] | +----------------------------------------------------+
JSON_MERGE는 주로 병합에 사용됩니다. 둘이 배열인 경우 하나의 배열로 병합합니다. ; 두 개가 JSON인 경우 하나의 JSON으로 병합하고, 두 개의 JSON이 동일한 키를 갖는 경우 값이 두 개의 단일 값인 경우 배열로 병합됩니다. 하나는 JSON이고 배열로 병합됩니다.
mysql> SET @j = '{ "a": 1, "b": [2, 3]}'; mysql> SELECT JSON_INSERT(@j, '$.a', 10, '$.c', '[true, false]'); +----------------------------------------------------+ | JSON_INSERT(@j, '$.a', 10, '$.c', '[true, false]') | +----------------------------------------------------+ | {"a": 1, "b": [2, 3], "c": "[true, false]"} | +----------------------------------------------------+
5. JSON_REMOVE 삭제 작업
JSON_REMOVE 삭제 작업은 비교적 간단합니다. 필드에서 특정 값을 배열에서 삭제합니다. 또는 JSON 형식:
mysql> SELECT JSON_MERGE('[1, 2]', '[true, false]'); +---------------------------------------+ | JSON_MERGE('[1, 2]', '[true, false]') | +---------------------------------------+ | [1, 2, true, false] | +---------------------------------------+ mysql> SELECT JSON_MERGE('{"name": "x"}', '{"id": 47}'); +-------------------------------------------+ | JSON_MERGE('{"name": "x"}', '{"id": 47}') | +-------------------------------------------+ | {"id": 47, "name": "x"} | +-------------------------------------------+ mysql> SELECT JSON_MERGE('{"id": "x"}', '{"id": 47}'); +-------------------------------------------+ | JSON_MERGE('{"id": "x"}', '{"id": 47}') | +-------------------------------------------+ | {"id": ["x",47]} | +-------------------------------------------+ mysql> SELECT JSON_MERGE('1', 'true'); +-------------------------+ | JSON_MERGE('1', 'true') | +-------------------------+ | [1, true] | +-------------------------+ mysql> SELECT JSON_MERGE('[1, 2]', '{"id": 47}'); +------------------------------------+ | JSON_MERGE('[1, 2]', '{"id": 47}') | +------------------------------------+ | [1, 2, {"id": 47}] | +------------------------------------+
6. JSON_REPLACE 작업
JSON_REPLACE 교체 작업이 있으면 교체하고, 없으면 무시하세요.
mysql> SET @j = '["a", ["b", "c"], "d"]'; mysql> SELECT JSON_REMOVE(@j, '$[1]'); +-------------------------+ | JSON_REMOVE(@j, '$[1]') | +-------------------------+ | ["a", "d"] | +-------------------------+ mysql> SET @j = '{"name": "x","id": 47}'; mysql> SELECT JSON_REMOVE(@j, '$.id'); +-------------------------+ | JSON_REMOVE(@j, '$.id') | +-------------------------+ | {"name": "x"} | +-------------------------+ mysql> SELECT JSON_REMOVE(@j, '$.id', '$.name'); +-----------------------------------+ | JSON_REMOVE(@j, '$.id', '$.name') | +-----------------------------------+ | {} | +-----------------------------------+ mysql> SET @j = '{"name": "x","id": [47,48]}'; mysql> SELECT JSON_REMOVE(@j, '$.id[1]'); +-------------------------+ | JSON_REMOVE(@j, '$.id') | +-------------------------+ | {"id": [47],"name": "x"} | +-------------------------+
7. JSON_SET 연산
JSON_SET 연산은 업데이트이고, 없으면 업데이트하고, 없으면 삽입합니다. JSON_SET, JSON_INSERT, JSON_REPLACE 실행 결과:
위는 MySQL 5.7의 새로운 기능 | Json Column 및 생성된 열(가운데)의 내용입니다. PHP 중국어 홈페이지(www.php.cn)를 주목해주세요!