4

bit(1)「MySQL」の型の列内に値を挿入する正しい構文は何ですか?

私の列の定義は次のとおりです。

payed bit(1) NOT NULL

データがまたはcsvとして保存されている場所からデータをロードしています。私は次を使用して挿入を試みました:01

b'value' or 0bvalue (example b'1' or 0b1)

マニュアルから示されているように。

しかし、私はこのエラーを受け取り続けます:

 Warning | 1264 | Out of range value for column 'payed' at row 1

bit値を挿入する正しい方法は何ですか?

私は手動で挿入を行っていませんが、列のデータがまたはであるcsv(を使用して) からデータをロードしています。load data infile01

これは私のloadクエリです。プライバシーに関する質問のフィールドの名前を変更しました。その定義に誤りはありません。

load data local infile 'input_data.csv' into table table
fields terminated by ',' lines terminated by '\n'
(id, year, field1, @date2, @date1, field2, field3, field4, field5, field6, payed, field8, field9,   field10, field11, project_id)
set
date1 = str_to_date(@date1, '%a %b %d %x:%x:%x UTC %Y'),
date2 = str_to_date(@date2, '%a %b %d %x:%x:%x UTC %Y');
show warnings;

これは私の CSV の行の例です。

    200014,2013,0.0,Wed Feb 09 00:00:00 UTC 2014,Thu Feb 28 00:00:00 UTC 2013,2500.0,21,Business,0,,0,40.0,0,PROSPECT,1,200013

更新: で解決策が見つからなかったためbit、列のデータ型を からbitに変更しtinyintて機能させました。

4

4 に答える 4

11

csv の「0」の値を値なしに置き換えます。それは私のために働いた。

于 2013-07-24T14:16:06.863 に答える
1

次のようにBIN()関数を使用できます。

INSERT INTO `table` VALUES (`column` = BIN(1)), (`column` = BIN(0));
于 2013-03-28T14:04:35.860 に答える
0

推測させてください。ただし、LOADクエリでCSVファイルの1行目を無視する必要があると思います。

「数行を無視する」を参照してください。

于 2013-03-28T14:15:50.513 に答える