문제:
정규화되지 않은 테이블에서 열이 다음을 포함합니다. 별도의 테이블에 대한 외래 키 역할을 하는 쉼표로 구분된 목록입니다. 이로 인해 절차적 언어 지원이 부족한 검색 엔진에 데이터를 통합할 때 문제가 발생합니다. 목표는 이 목록을 여러 행으로 분할하여 궁극적으로 비정규화된 테이블을 생성하는 것입니다.
해결책:
MySQL은 본질적으로 테이블을 반환하는 함수를 제공하지 않지만, 솔루션을 구현할 수 있습니다:
SELECT part_id, REGEXP_SUBSTR(`material`, '[^,]+', 1) AS `material_id` FROM unnormalized_table
이 쿼리는 쉼표로 구분된 목록의 첫 번째 값을 Material_id 열에 할당하여 각 part_id에 대해 새 행을 생성합니다.
예:
이 솔루션을 문제 설명에 제공된 예에 적용하면 다음과 같은 결과가 나옵니다. 결과:
part_id | material_id |
---|---|
339 | 1 |
339 | 2 |
970 | 2 |
결론:
문자열 조작과 하위 쿼리의 조합을 활용하면 MySQL에서 쉼표로 구분된 목록을 비정규화하는 것이 가능합니다. 이 기술을 사용하면 고급 절차적 언어 기능을 지원하지 않는 다양한 애플리케이션에 이러한 데이터를 원활하게 통합할 수 있습니다.
위 내용은 검색 엔진 통합을 위해 MySQL에서 쉼표로 구분된 목록을 효율적으로 비정규화하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!