プロが教えるわが家の防犯対策術!

すいません。1つ教えて頂きたいことがあります。

http://mysqlweb.net/category/4005373-1.html

このファイルを参照してCSVを取り込もうとしていますが、何度やっても1行しか取り込まないです・・・。
Warningが出て、メッセージは

Non-ASCII separator arguments are not fully supported  です。
改行コードが悪い、というのはわかりましたが何をどうしたら修正出来るのかわからず
困り果てております。

どなたかこの原因を解消する方法をご教授下さい。。。

よろしくお願いいたします。

「CSVを1行しかインポートしない・・・・」の質問画像

A 回答 (3件)

mysql> LOAD DATA INFILE "T01Prefecture.csv"


-> INTO TABLE T01Prefecture FIELDS TERMINATED BY ","
-> LINES TERMINATED BY "\r\n";
Query OK, 1 row affected, 1 warning (0.11 sec)
Records: 1 Deleted: 0 Skipped: 0 Warnings: 1

mysql> select * from t01prefecture;
+---------+-----------+
| pref_cd | pref_name |
+---------+-----------+
| 1 | 北海道
2 |
+---------+-----------+
をみると、
-> LINES TERMINATED BY "\r\n";
CR(0x0D)+LF(0x0A)という改行になっていないので、
1行目のpref_nameは、

北海道
2
」という値が入っているのがわかります。
入力元のファイルをバイナリエディタで調べてみましょう。
改行が0Dだけなら\rで、0Aだけなら\nで指定するとうまくいくはず。

バイナリエディタの例
BZ エディタ
http://www.forest.impress.co.jp/library/software …
他。
    • good
    • 0

すいません。

私の指摘したものはコマンドだったのですね。
よく読んでいませんでした。

記事を読んでいくとT01Prefecture.csvがSHIFT-JISと書かれています。
メモ帳で開いて名前をつけて保存、で、文字コードANSIで保存したらいけるかも。

この回答への補足

すいません・・・やはりダメです。ホントに悔しいです。何でダメなんだろう。自分で一からCSVを作ってもダメです。。。勿論、文字コードは sjis です。

下記はコードとなります。何がダメなんでしょうか・・・。

mysql> status
--------------
C:\Program Files\MySQL\MySQL Server 5.6\bin\mysql.exe Ver 14.14 Distrib 5.6.17,
for Win32 (x86)

Connection id: 4
Current database: sampledb040
Current user: root@localhost
SSL: Not in use
Using delimiter: ;
Server version: 5.6.17 MySQL Community Server (GPL)
Protocol version: 10
Connection: localhost via TCP/IP
Server characterset: sjis
Db characterset: sjis
Client characterset: sjis
Conn. characterset: sjis
TCP port: 3306
Uptime: 15 min 35 sec

Threads: 1 Questions: 72 Slow queries: 0 Opens: 68 Flush tables: 1 Open tab
les: 61 Queries per second avg: 0.077
--------------

mysql> LOAD DATA INFILE "T01Prefecture.csv"
-> INTO TABLE T01Prefecture FIELDS TERMINATED BY ","
-> LINES TERMINATED BY "\r\n";
Query OK, 1 row affected, 1 warning (0.11 sec)
Records: 1 Deleted: 0 Skipped: 0 Warnings: 1

mysql> select * from t01prefecture;
+---------+-----------+
| pref_cd | pref_name |
+---------+-----------+
| 1 | 北海道
2 |
+---------+-----------+
1 row in set (0.00 sec)

補足日時:2014/04/15 23:07
    • good
    • 0

テーブルのカラムは2つありますか?


行区切りが\nでなく,で終わっているみたいですが。

この回答への補足

お返事ありがとうございます。

カラムは2つあります。

行区切りが\nでなく,で終わっている、故に

LOAD DATA INFILE "T01Prefecture.csv"
INTO TABLE T01Prefecture FIELDS TERMINATED BY ","
LINES TERMINATED BY "\r\n";

と、最後を"\r\n"にしていますが、このやり方がおかしいでしょうか?

よろしくお願いいたします。

補足日時:2014/04/14 23:56
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す