2011-01-03 9 views
0

LOAD DATA INTOコマンドを使用して、txtファイルのデータをデータベースに読み込みます。私の入力では、ıは ' - '文字をnull(文字列nullではなく)として取る必要があります。例えば、入力mysql nullの問題?

スタック - オーバーフロー

は2列= =オーバーフローヌル 3列スタック=

1列でなければなりません。

どうすればいいですか?

+0

? NULLを気にすることなく、データをデータベースに取り込むことはできますか? –

答えて

2

単純なアプローチは、その後、その後、あなたが変更したい値を修正するためにいくつかの更新を実行し、任意の変換をせずに最初に使用LOAD DATAに次のようになります。

UPDATE yourtable 
SET col1 = NULL 
WHERE col1 = '-' 

のLOAD DATA構文はまたあなたに変換を指定することができますデータ:

[SET COL_NAME = exprの、...]

列リストは、列名またはユーザー変数のいずれかを含めることができます。ユーザー変数を使用すると、SET句を使用して、結果を列に割り当てる前に値の変換を実行できます。

例は次のようになります。あなたがこれまで持っている何

LOAD DATA INFILE 'file.txt' 
INTO TABLE t1 
(column1, @var1) 
SET column2 = CASE WHEN @var1 = '-' THEN NULL ELSE @var1 END; 
+0

データベースの作成中にしてもよろしいですか? – obtur

+0

if文で試してみましたが、できませんでした。 IF name!= ' - ' THEN SET name = @ nameを書きましたが、構文エラーです。 – obtur