0
.csv 파일의 데이터를 내 db로로드하려고합니다. 문제는 "maxSpieler"의 숫자가 문자열로 저장되었지만 int로 저장하려고합니다. 일종의 스크립트를 사용하여 .csv 파일의 값을 변경할 수는 있지만 SQL을 사용하여이 값에 접근하고 싶습니다.스위치 케이스를 사용하여 SQL에서 .csv의 값을 변경하는 방법
LOAD DATA LOCAL INFILE 'C:\\Users\\schmidmath\\Documents\\s.csv'
INTO TABLE spiele
FIELDS TERMINATED BY ';'
ignore 1 rows
(ID_Spiel, name,dauer,@var,@datum,hersteller_id)
SET maxSpieler =
CASE
WHEN @var = "Eins" THEN maxSpieler = 1
WHEN @var = "Zwei" THEN maxSpieler = 2
WHEN @var = "Drei" THEN maxSpieler = 3
WHEN @var = "Vier" THEN maxSpieler = 4
WHEN @var = "Fünf" THEN maxSpieler = 5
WHEN @var = "Sechs" THEN maxSpieler = 6
END
WHERE maxSpieler IN ('Eins', 'Zwei', 'Drei', 'Vier', 'Fünf', 'Sechs')
SET erscheinungsdatum = STR_TO_DATE(@datum,'%d.%m.%Y')
.csv 파일 :
ID;Name;Dauer in Minuten;Anzahl Spieler;Erscheinungsdatum;Hersteller_ID
1;Reversi;30;Fünf;01.12.1893;3
2;Vier gewinnt;10;Zwei;31.07.1974;1
3;HeroQuest ;90;Fünf;01.05.1989;1
4;Das verrueckte Labyrinth;30;Vier;31.12.1986;
5;Dominion ;40;Vier;01.01.2008;
6;Mensch ärgere dich nicht;30;Vier;01.01.1910;4
7;;20;Sechs;08.06.1995;5
8;Spiel des Lebens;60;Sechs;01.01.1980;1
9;;10;Zwei;31.12.1970;2
10;King Arthur;60;Vier;31.10.2003;3
여기에 내가 지금까지 뭘하려은 "문제는"라인에서 시작
부하 데이터 쿼리에 대한 나의 접근 방식 "maxSpieler = 설정"
는 그것을 써머하려면 내가 필요 문자열 인 내 .csv 파일에서 maxSpieler의 값을 int로 변경하고 내 데이터베이스에 저장합니다.
당신은 다음과 TEMPTABLE를 업데이트 VARCHAR와 같은 임시 테이블에 저장 할 수 있습니다 * 경우 blablabla은 ... 당신이 실제 테이블에 임시 테이블에서 삽입 할 때 *이 업데이트 테이블이 과장되게 떠벌 림자 = 사건을 설정할 때. 실제 표 값 (blabla, spieler, blabla)을 선택하십시오. 임시 테이블에서 blabla cast (int로 spieler)를 선택하십시오. – MiloBellano
아이디어를 주셔서 감사합니다. 직접 옵션이 있어야한다고 생각하지 않습니까? –