반응형
기존 JSON 문서에 배열 값을 삽입하는 방법은 무엇입니까?
JSON 문서가 포함된 열을 고려할 때, 나는 사용할 수 있습니다.JSON_SET()
JSON 문서의 키를 값으로 설정합니다.지원되는 값은null
,true
,false
숫자와 문자열. 하지만 배열을 설정하는 방법을 알 수 없습니다.
설명서의 예제(에 대한)JSON_INSERT()
하지만 동일하게 작동함)는 순진한 사용자가 배열 값을 설정하려고 시도했다가 실패하는 방식을 이상하게 보여줍니다. 자세히 보면 배열이 문자열로 변환되었음을 알 수 있습니다.
처음 사용하는 방법을 알아냈습니다.
JSON_SET(col, '$.field', "first value")
-- {"field": "first value"}
다음과 같은 경우:
JSON_ARRAY_APPEND(col, '$.field', "second value")
-- {"field": ["first value", "second value"]}
하지만 거기에는 모든 종류의 문제가 있는데, 특히 2개 미만의 값으로 배열을 설정하는 데 사용할 수 없다는 것입니다.
JSON_INSERT/JSON_REPLACE/JSON_SET
JSON 문서를 다음 값으로 기꺼이 수락합니다.
SELECT JSON_INSERT('{"foo": "bar"}', '$.new', JSON_ARRAY('one', 'two', 'three'))
/*
{
"foo": "bar",
"new": ["one", "two", "three"]
}
*/
참고:
JSON_SET()
기존 값을 대체하고 존재하지 않는 값을 추가합니다.JSON_INSERT()
기존 값을 바꾸지 않고 값을 삽입합니다.JSON_REPLACE()
기존 값만 바꿉니다.
이미 존재하거나 존재하지 않는 배열에 값을 추가하려면 다음 순서로 함수를 연결합니다.
SELECT JSON_ARRAY_APPEND(JSON_INSERT('{"foo": "bar"}', '$.new', JSON_ARRAY()), '$.new', 'four')
/*
{
"foo": "bar",
"new": ["four"]
}
*/
SELECT JSON_ARRAY_APPEND(JSON_INSERT('{"foo": "bar", "new": ["one", "two", "three"]}', '$.new', JSON_ARRAY()), '$.new', 'four')
/*
{
"foo": "bar",
"new": ["one", "two", "three", "four"]
}
*/
언급URL : https://stackoverflow.com/questions/69753212/how-to-insert-an-array-value-to-an-existing-json-document
반응형
'programing' 카테고리의 다른 글
C#에서 더 큰 문자열에서 하위 문자열의 모든 위치 찾기 (0) | 2023.06.17 |
---|---|
jquery: ID가 특정 패턴인 요소 찾기 (0) | 2023.06.17 |
for-loop에서 오류 건너뛰기 (0) | 2023.06.17 |
파이썬에서 두 번 빼기 (0) | 2023.06.17 |
32비트 또는 64비트에 따라 데이터 유형 또는 구조의 크기는 누가 결정합니까? (0) | 2023.06.17 |