테이블 조인을 위해 MySQL JSON 필드 사용
JSON 필드에 데이터를 저장하면 유연성이 제공될 수 있지만 데이터 작업을 수행할 때 문제가 발생하기도 합니다. . 이 문의의 목표는 ID 배열을 저장하는 JSON 필드를 사용하여 테이블을 조인하는 것입니다.
문제 설명
사용자가 두 개의 테이블을 생성했습니다. user_group, 그리고 사용자 테이블 내의 가상 user_groups JSON 필드를 사용하여 ID 목록을 저장합니다. 사용자는 이 JSON 필드에 대해 작업을 수행하고 이를 SQL에서 사용하려고 합니다.
구체적으로 사용자는 사용자 ID, 사용자 이름, 사용자 그룹 ID 및 그룹 이름이 나열된 결과를 얻으려고 합니다. 이러한 결과는 JSON 필드에 저장된 ID를 기반으로 조인되어야 합니다.
해결책
이를 달성하기 위해 사용자는 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_TABLE 함수를 사용하여 JSON 필드에서 ID 배열을 추출하고 생성할 수도 있습니다. 가상 테이블. 이 접근 방식을 사용하면 데이터를 더 유연하게 조작할 수 있습니다.
코드
<code class="sql">SELECT u.user_id, u.user_name, uv.user_group_id ( SELECT g.group_name FROM user_group g WHERE g.user_group_id = uv.user_group_id ) AS group_name FROM user u CROSS JOIN JSON_TABLE( u.user_groups, '$[*]' COLUMNS (user_group_id INT PATH '$') ) uv</code>
설명
이러한 기술을 활용하면 사용자는 JSON 필드를 효과적으로 활용하여 MySQL에서 테이블 조인과 복잡한 데이터 작업을 수행할 수 있습니다.
위 내용은 JSON 필드에 저장된 ID를 기반으로 MySQL 테이블을 조인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!