0
.csvファイルからmy dbにデータをロードしようとしています。問題は、 "maxSpieler"の数が文字列として保存されていますが、intとして保存したいと思います。私はちょうど何かの種類のスクリプトを使って.csvファイルの値を変更することができますが、私はSQLでこれにアプローチしたいと思います。ここで私はこれまで試したものです、 "問題は" 行で "SET maxSpieler =" ロード・データクエリのスイッチケースを使用して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
それをSUMMするには: は私がする必要があります文字列である私の.csvファイルのmaxSpielerの値をintに変更し、それをデータベースに保存します。
あなたは*、テーブルを更新するとき*ケースでTEMPTABLEを更新し、varchar型として一時テーブルに格納できますがSpieler =ケースを設定します。実際のテーブル値(blabla、spieler、blabla)に選択してください。blabla cast(spieler as int)をテンポラリテーブルから選択してください。 – MiloBellano
アイデアありがとうございます。 –