>  기사  >  데이터 베이스  >  MySQL의 JSON 배열 내에서 특정 값을 찾는 방법은 무엇입니까?

MySQL의 JSON 배열 내에서 특정 값을 찾는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-30 08:24:03249검색

How to Find a Specific Value within a JSON Array in MySQL?

MySQL: 배열 내에서 특정 키 값 검색

MySQL에서는 배열에서 특정 값을 검색하려는 시나리오가 발생할 수 있습니다. JSON 객체의 배열입니다. JSON_SEARCH 함수를 사용하면 원하는 노드의 경로를 가져올 수 있습니다. 그러나 이를 특정 배열 요소 선택과 결합하는 것은 어려울 수 있습니다.

해결책: JSON_TABLE 함수

MySQL 8.0은 JSON을 변환하는 JSON_TABLE 함수를 제공합니다. 기존 행 및 열과 유사한 가상 파생 테이블로 문서화합니다. 이를 통해 JSON 데이터에 대한 선택 및 프로젝션 작업을 수행할 수 있습니다.

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

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

기사의 힘을 찾으려면 다음 쿼리를 사용할 수 있습니다. :

<code class="sql">SELECT j.strength, j.race
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_TABLE을 사용하여 뷰를 정의하면 이 파생 테이블을 생성하는 반복적인 특성을 완화할 수 있습니다.
  • 복잡한 JSON 데이터의 정규화를 고려하여 쿼리를 단순화하고 최적화하세요.

위 내용은 MySQL의 JSON 배열 내에서 특정 값을 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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