MySQL에서 쉼표로 구분된 목록을 여러 행으로 분할
문제:
테이블 다른 테이블에 대한 외래 키 역할을 하는 쉼표로 구분된 값이 있는 열을 포함합니다. 조인이나 쿼리를 통해 이 데이터를 어떻게 처리하여 새 테이블에 여러 항목을 생성하고 데이터를 효과적으로 "비정규화"할 수 있습니까?
해결책:
MySQL은 FIND_IN_SET()을 사용하여 쉼표로 구분된 목록을 분할하는 솔루션을 제공합니다. function.
SELECT material_id FROM materials WHERE FIND_IN_SET(name, part.material) > 0;
이 쿼리는 부품 테이블의 재료 열에 있는 쉼표로 구분된 목록에 있는 재료 테이블의 각 이름에 대한 Material_id를 검색합니다. 결과는 원하는 대로 part_id와 Material_id 쌍이 포함된 평면화된 테이블입니다.
예:
다음 데이터를 고려하세요.
+---------+-------------+ | part_id | material | +---------+-------------+ | 339 | 1.2mm;1.6mm | | 970 | 1.6mm | +---------+-------------+
다음 쿼리는 재료 열을 별도의 열로 분할합니다. 행:
SELECT part_id, material_id FROM materials WHERE FIND_IN_SET(name, part.material) > 0;
결과는 다음과 같습니다.
+---------+-------------+ | part_id | material_id | +---------+-------------+ | 339 | 1 | | 339 | 2 | | 970 | 2 | +---------+-------------+
위 내용은 MySQL에서 쉼표로 구분된 목록을 여러 행으로 분할하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!