MySQL의 JSON 필드에서 조인 수행
질문:
ID 목록을 저장하는 JSON 필드입니다. 이 필드에서 SQL 작업을 수행하고 이를 사용하여 다른 필드와 조인할 수 있습니까? 테이블?
예:
다음 테이블을 고려하십시오.
<code class="sql">CREATE TABLE user ( user_id INT, user_name VARCHAR(50), user_groups JSON ); CREATE TABLE user_group ( user_group_id INT, group_name VARCHAR(50) );</code>
다음 결과를 반환하는 쿼리를 생성하려고 합니다.
user_id | user_name | user_group_id | group_name| ------------------------------------------------- 101 | John | 1 | Group A 101 | John | 3 | Group C
user_groups가 그룹을 나타내는 목록 [1, 3]을 저장하는 위치 ID.
답변:
예, MySQL의 JSON 필드에서 조인을 수행할 수 있습니다. JSON_CONTAINS 함수를 사용하면 JSON 값에 특정 값이 포함되어 있는지 확인할 수 있습니다.
<code class="sql">SELECT u.user_id, u.user_name, g.user_group_id, g.group_name FROM user u LEFT JOIN user_group g ON JSON_CONTAINS(u.user_groups, CAST(g.user_group_id as JSON), '$')</code>
이 쿼리에서 JSON_CONTAINS는 user_groups 필드에 user_group_id 값이 포함되어 있는지 확인합니다. 그렇다면 결과 집합에 해당 행이 포함됩니다. 이 함수의 $ 연산자는 지정된 값을 배열의 어느 곳에서나 검색해야 함을 나타냅니다.
이 기술을 사용하면 JSON 필드에서 조인을 수행하고 중첩 구조에서 관련 데이터를 추출할 수 있습니다.
위 내용은 MySQL의 JSON 필드에 저장된 데이터를 기반으로 테이블을 조인할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!