CSV 형식이 포함된 varchar 열을 다른 테이블로 이동
P粉478188786
P粉478188786 2023-09-10 19:59:25
0
1
527

15년 전에 제가 만든 데이터베이스는 잘못 설계되었습니다. 쉼표로 구분된 문자열 '5,8,13'을 포함하는 varchar 열이 있습니다. 문자열에는 공백과 후행 쉼표가 포함되지 않지만 값의 개수는 가변적입니다. 내가 하고 싶은 일은 새 테이블을 만들고 행의 ID와 쌍을 이루는 이 값을 새 테이블로 옮기는 것입니다. 위 값이 ID 7의 행에서 나온다고 가정하면 결과는 3개의 행이 됩니다.

으아아아

기존 데이터 세트를 보면 해당 열에는 1부터 6까지의 값이 있습니다. 문자열 분할 기능을 사용하는 방법을 보여주는 스레드를 찾았습니다: 값을 한 필드에서 두 필드로 나누기

하지만 솔직히 이것을 단일 삽입 작업으로 변환하는 방법을 모르겠습니다. 이것이 간단한 작업이 아니라면 삽입 문이 많더라도 그냥 PHP 스크립트를 작성하겠습니다.

더 자세히 설명하려면 다음 두 표를 참고하세요.

으아아아

Table_A는 기존 데이터입니다. 여기서 플랫폼 열의 데이터는 쉼표로 구분된 숫자 "3,45" 또는 "56,4"입니다. 이 숫자는 다른 테이블의 인덱스를 가리킵니다. 예, 나는 그것이 나쁜 디자인이라는 것을 압니다. 운 좋게도 그 이후로 더 나은 방법을 배웠습니다. Table_A의 플랫폼 문자열에서 숫자를 구문 분석하여 Table_A 행의 ID와 함께 Table_B에 삽입하고 싶습니다.

P粉478188786
P粉478188786

모든 응답(1)
P粉956441054

이 기능을 구현하기 위한 간단한 쿼리는 다음과 같습니다. CSV에서 6개의 값만 분할합니다. 연속된 값이 더 있으면 변경해야 합니다 UNION ALL

결과는 단일 테이블에 저장됩니다.

으아악
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿