하나의 열에 여러 자료가 있을 경우 정규화 방법
1)
family |
first, second, third |
2)
family |
first |
second |
third |
2번 표와 같이 바꾸는 것
1) 열 추가
ALTER TABLE my_table
ADD COLUMN family1 VARCHAR(20),
ADD COLUMN family2 VARCHAR(20),
ADD COLUMN family3 VARCHAR(20);
2) 첫번 째 원소를 얻어낸다
UPDATE my_table
SET family1 = SUBSTRING_INDEX( family, ',', 1);
//family열에서 1번째 콤마(,)가 나오기 전까지 추출
family |
family1 |
family2 |
family3 |
first, second, third |
first |
|
|
3) 옮기고 나서 원래 원소는 지운다.
UPDATE my_table
SET family = SUBSTR ( family, LENGTH(family1)+2);
// SUBSTR : 문자열 일부를 반환
// family1의 길이만큼과 2(콤마와 띄어쓰기빈칸)를 더한 수 만큼 지운다.
family | family1 | family2 | family3 |
second, third | first |
|
|
4) 나머지 반복
UPDATE my_table
SET family2 = SUBSTRING_INDEX(family, ',' , 1),
family = SUBSTR (family, LENGTH(family2)+2),
family3 = family;
family | family1 | family2 | family3 |
third | first | second | third |