>데이터 베이스 >MySQL 튜토리얼 >MySQL의 중첩된 JSON 배열에서 \'Knight\'의 강도 값을 쿼리하는 방법은 무엇입니까?

MySQL의 중첩된 JSON 배열에서 \'Knight\'의 강도 값을 쿼리하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-29 05:20:02304검색

How to Query Strength Value of a

키로 중첩된 JSON 배열 쿼리

MySQL에서는 JSON_TABLE 조합을 사용하여 중첩된 JSON 배열에서 특정 값을 검색할 수 있습니다. () 함수와 WHERE 절.

다음 JSON 배열을 고려하세요.

<code class="json">[
    {"Race": "Orc", "strength": 14},
    {"Race": "Knight", "strength": 7}
]</code>

기사의 힘을 검색하려면 다음 쿼리를 사용할 수 있습니다.

<code class="sql">SELECT j.strength
FROM mytable,
JSON_TABLE(mycol, '$[*]' COLUMNS (
    race VARCHAR(10) PATH '$.Race',
    strength INT PATH '$.strength'
)) AS j
WHERE j.race = 'Knight'</code>

이 쿼리는 JSON_TABLE() 함수를 사용하여 JSON 배열에서 각 속성에 대한 열이 포함된 가상 테이블을 생성합니다. 그런 다음 WHERE 절을 사용하여 "Race" 속성을 기준으로 결과를 필터링합니다.

장점 및 제한 사항

JSON_TABLE()을 사용하면 다음과 같은 여러 가지 이점을 얻을 수 있습니다.

  • JSON 문서에서 특정 속성을 선택하고 투영할 수 있습니다.
  • JSON 데이터 내의 필드에 조건을 적용하는 데 사용할 수 있습니다.

그러나 또한 몇 가지 제한 사항이 있습니다.

  • 쿼리에서 속성 필드를 지정해야 하며, 데이터 구조를 알 수 없는 경우에는 불가능할 수 있습니다.
  • 깊이 있는 쿼리를 처리할 때 쿼리가 복잡해질 수 있습니다. 중첩되거나 구조화되지 않은 JSON 문서.

대체 접근 방식

데이터 구조를 알 수 없거나 자주 변경되는 경우 대체 접근 방식은 JSON_SEARCH() 함수를 사용하는 것입니다. 원하는 값에 대한 경로를 찾은 다음 경로 연산자를 사용하여 값을 추출합니다. 하지만 이 방법은 JSON_TABLE()만큼 쉽게 선택하거나 투영할 수 없습니다.

위 내용은 MySQL의 중첩된 JSON 배열에서 \'Knight\'의 강도 값을 쿼리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.