質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

解決済

1回答

3454閲覧

phpmyadminでcsvファイルのインポート

SugiuraY

総合スコア317

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

0クリップ

投稿2016/08/03 14:55

編集2016/08/04 12:19

下記のてけんですが、一つ検証してわかったことかあります。
csvの中に、ローマ数字が使用されており、macで表示される際に、㈼と変換されており
これがmysqlに取り込まれた際にそれから複数行がスキップされております。
そうも機種依存の文字化けと呼ばれるみたいですが、これを解消(mysql)へ取り込める方法
はありますでしょうか。CSV側では複数の種類のこのような機種依存の文字が使われているため
毎回、置換するのは現実的ではない状況です。
よろしくお願い申し上げます。

まだまだ初心者で申し訳ございませんが、質問をさせてください。

表題の通り、csvファイルをデータベースに取り込むべくインポートをphpmyadminから行っております。

phpmyadmin > インポート >ファイル文字セット(UTF-8)>エンコーディング(SJIS)>実行
の手順です。ファイルセット文字やエンコーディングの組み合わせもいろいろ試してみております。
csvファイルはレコードが7000行、カラムが10列程度です。

①このように実行した結果、エラーなく取り込まれた表示がされ、文字化けも解消しているのですが、明らかに欠けているレコードが存在いたします。すなわちエラーがないのにインポートが漏れております。レコード600行程度が欠落しておりました。これらのレコードを見る限り、セルに空欄や余計なカンマ等取り込む際に問題となるようなものは検出されませんでした。

②①の中で漏れているレコードを別のcsvに抜き出し単体で、同じ条件でインポートを行ったところ、インポートすることができました。

③文字化けを問題とせずに取り込んだ場合、特に漏れなくレコードが取り込まれていることが確認できました。

抽象的で申し訳ございませんが、上記のような状況でどこに問題があるのかに困惑しております。どなたか同じ経験等で解決方法もしくは問題点等がわかる方、ご教示をいただけませんでしょうか。直接csvデータをお見せしたいのですが、お見せできず抽象的な形での質問となり申し訳ございません。追加の必要な情報があれば速やかにコメントさせていただきます。

よろしくお願い申し上げます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

A.Ichi

2016/08/03 23:26

あてずっぽですみません、取り込まれない行の前行に問題が有るかもしてません(特にEOL)、但し600行が連続して居ない場合ですが?
SugiuraY

2016/08/03 23:35

ご回答ありがとうございます。 確かに仰る通りです600行連続ではないですが、それぞれ纏まって(例えば100行)抜けております。eolとは、end of lineの様ですが、あまり記事が見つからず、もしよろしければ是非ご教示願いたく存じます。
A.Ichi

2016/08/03 23:40

すみません、EOLは行終端の事です。改行が認識されない、または前行の"等の終端の認識エラーで起こるケースを考えてみました。その場合大概行が飛び飛びになって居るので分かります。連続している行が有ればその可能性は、低いです。
SugiuraY

2016/08/03 23:47

なるほど、そのようなケースがあるのですね、藁をもすがる思いでしたので貴重なご意見、誠にありがとうございます。
A.Ichi

2016/08/04 00:08

ご存知かもしれませんが、大量csvのインポート方法として xampp/phpMyAdmin/config.inc.php の中の $cfg[‘UploadDir’]=”; を $cfg[‘UploadDir’]=’./upload’; に変更する方法が紹介されています。
SugiuraY

2016/08/04 01:23

レンタルサーバーのため、configファイルの修正の方法を管理者に確認してみます。ただしながら、現在のファイルを10分割しても、同じ症状が発生するので、データの量ではなく、エンコードに原因がある気が、しております。。
asahina_dev

2016/08/04 12:28 編集

さくらレンタルサーバーのphpMyAdmin は設定変更不可能ですよ・なので 自分のWWW以下にphpMyAdmi を配備してくださいね
guest

回答1

0

ベストアンサー

基本的にUTF8ですべて処理すればよいかも
とくに環境依存文字は波ダッシュとか根深く
カッコ株とかローマ字、丸数字など一部変換がうまくいかないものもあります

またSJISが絡むと、5C問題などで引っかかる場合もあります

投稿2016/08/05 00:41

yambejp

総合スコア114769

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問