• ベストアンサー

MYSQLで空白をインポートしたい

こんにちは。MYSQL5.5を使用しています。固定長のテキストファイルを各フィールドにインポートしたいと思っています。 例えば、10文字目から20文字目は空白(半角スペース)だとします。フィールドXに半角スペース10個をインポートしたいのですが、挿入後の結果を見るとNULLになっています。 これを、半角スペース10個挿入するにはMYSQL側でどのような設定を行う必要があるでしょうか?

  • MySQL
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

フィールドXはchar型ですか? 半角スペースの羅列をNULLと判断することはないので char型は表示の際に末尾のスペースを省略します http://dev.mysql.com/doc/refman/5.1/ja/char.html 本当に空白ではなくNULLになっているならどのような インサートをしているか例示してみてください。 create table hoge(id int not null primary key auto_increment,c char(10),v varchar(10)); insert into hoge(c,v) values ('a','b') ,(concat(repeat(' ',3),'c'),concat(repeat(' ',3),'d')) ,(concat('e',repeat(' ',3)),concat('f',repeat(' ',3))) ,(repeat(' ',5),repeat(' ',5)); select id,c,length(c),v,length(v) from hoge;

mellow91
質問者

お礼

ありがとうございます。!!

関連するQ&A

  • CSVからNULL値をインポート

    phpMyAdminを使用してcsvからデータをインポートしようとしています。 通常の値は問題なくインポートできるのですが、NULL値があるフィールドがどうしても「0」になってしまいます。(そのフィールドはNULL値が入力可で、デフォルト値もNULLです) csvからNULL値をインポートする方法をご教授下さい。 宜しくお願いします。 ※\Nを入力するとNULLになるという情報があったため、 "1";"2";"3";"4";\N "1";"2";"3";"4";"\N" (1.2.3.4は適当な文字で、5番目をNULLにしたい) の両方を試みましたが、入力結果は「0」でした。 phpMyAdmin - 2.10.2 MySQL クライアントのバージョン: 5.0.18 フィールド区切り記号 ; フィールド囲み記号 ""

    • ベストアンサー
    • MySQL
  • ACCESS97 : レコードが長いファイルのインポートについて

    ACCESS97で、文字列を文字数ではなくバイト数で扱うことは可能でしょうか。 1レコードが20,000ByteあるテキストファイルをACCESS97のテーブルに インポートしようとしています。 インポート先のテーブルのフィールドをすべて「メモ型」にしたのですが、 インポート定義を利用してインポートを行おうとすると、 「レコードが大きすぎます。」というエラーが発生します。 そこで、プログラムでファイルを1レコードずつ読み込みながらテーブルに インサートしていく方法を取ろうかと思います。 テキストファイルは半角と全角が混在しているのですが、困ったことに 全角のデータが入るべきところに半角が混ざっている可能性があります。 たとえば、全角10文字入るべき場所に半角の空白が20文字入っていると いうような状態です。 この状態で StrConv関数でUnicodeに変換してからMidB$関数で文字を抜き 出すと、フィールドがずれてきます。 1文字目から10文字分、ではなく1Byte目から10Byte、などというように文 字列を扱うことができれば、全角と半角がどのような位置で混在していても 関係なくプログラム上で扱うことができると思うのですが,方法がわかりません。 また、これ以外で長いレコードのファイルをインポートできる方法があれば 教えていただきたいと思います。 長くなってしまいましたが、ご回答をいただけますようよろしくお願いいたします。

  • 100万レコード規模のaccessDBテーブルからNullを置換する方法

    半角スペースを含むcsvファイルを、accessのテーブルとしてインポートした際、スペースがnullとして扱われてしまいます。 これを0文字の空白に置換しているのですが、時間がかかり、かつ、成功したのかどうかよく分からないために困っています。 下記の2つの方法でnullを0文字の空白に変換してみたのですが、レコード数が多すぎるのか、置換がすべて成功していない模様です。  テーブルのフィールドを選択し、「置換」する  フィールドのnullを見つけ、更新するクエリーを書く できれば、インポート元のcsvファイルやインポート後のテーブルを分割させずにメンテナンスを行いたいのですが、こういう場合に有効な対処方法というのはどのようなものがあるのでしょうか?  1.置換を高速化するアイディア  2.インポート段階で変換する方法があるかどうか?  3.置換結果を確認する方法 私は今までデータベースというものを全く使ったことがないので、これ以上のことがわかりません。ぜひ、専門家のご意見を頂きたいと思います。 よろしくお願いいたします。 【csvファイル仕様】  データ規模:100万行、1行あたり10~20列   元データはフィールド毎に固定長  データ形式:テキスト型、長整数型が混在   複数のテキスト型フィールドに半角スペースを含む   長整数型のフィールドは0を含む 【mdbファイル仕様】  マスタテーブルを格納する。他のmdbにあるクエリから参照される。  テーブル形式   テキスト型フィールド:255文字(今のところ・・・)   数値型フィールド:長整数型  規模:   インポート後のmdbサイズは1テーブルあたり300MB程度。   そのmdbは同規模のテーブルを最高3程度まで保持する。 【使用環境条件】  OS:windows XP 最新SP  DB:Access 2003   mdbファイルはネットワーク上にある。   ローカルHDDにコピーして作業することは可  CPU:Celeron 2.0GHz  Memory:2GB Memory  HDD:空き40GB以上

  • 郵便番号データのMYSQLへのインポートについて

    郵便番号データのMYSQLへのインポートについて質問をさせていただきます。よろしくお願いします。 郵便番号のデータベースを日本郵政が配布しているCSVファイルを利用して作成しようと思い、下記の手順でMYSQLにインポートしようと試みましたが、失敗してしまいます。 1.日本郵政のHPからダウンロードしてきたファイルをそのままではサイズが大きすぎてインポートできないためken1.txt(1340KB)、ken2.txt(1339KB)、ken3.txt(1386KB)、ken4.txt(1444KB)に分割。 2.サイトの文字コードがUTF-8を使用しているため、上記のファイルの文字コードをUTF-8に変換。 3.PHPMyAdminを使用し、yubinbangoテーブル(フィールドは以下の4つ bango、ken、shi、machi 上記ファイルについてもフィールドは4つにしてあります。)を作成。 4.PHPMyAdminでyubinbangoテーブルを選び、『テーブルにテキストファイルを追加する』のリンクをクリック。 5.表示された画面で テキストファイルの場所→上記分割したファイル ファイルでテーブルを置き換える→チェックボックスのチェックなし フィールド区切り記号→, フィールド囲み記号→" オプションのチェックボックスのチェックなし フィールドのエスケープ記号→\ 行の終端記号→\r\n 列(カラム)名→『bango,ken,shi,machi』 漢字コード変換→non LOAD 手段→DATA LOCAL として、実行ボタンを押したところ、データは追加されたと出るのですが、実際にデータベースの中を見てみると『bango』の1つ目のデータのみ文字化けし、以降全てのデータで『ken,shi,machi』がNULLとなってしまっています。 どのようにすれば、データを正常にインポートできるでしょうか? どうかご教授のほどよろしくお願いいたします。

  • 空白をそのままインポートする方法について

    お世話になります。 ACCESSのインポート機能で、以下のテキストをインポートしようと しています。 001,aaaaa_____,99999 002,bbbbbbb___,99999 003,ccc_______,99999 (_は空白を意味します。) この2カラム目が空白を含めて10バイトなのですが、 固定長でインポートしても、カンマ区切りでインポートしても インポート後のテーブルには後ろの空白はカットされてしまいます。 VARCHARではなくCHARのイメージでインポートする方法はありますでしょうか。 よろしくお願いします。

  • MySQLデータベースにcsvファイルインポートで、エラー

    csvファイルインポートで、エラー phpMyAdminからMySQLデータベースに、csvファイルのインポートを試みたところ、 「CSV 入力のフィールド数が不正です(行: 17)」と表示され、うまくいきません。 データベースの中を確認すると、60レコードのうち、15レコードまでは正常にインポートされています。 元のcsvファイルを確認しても、mysql側とフィールド数は一致しており、問題はないように見受けられました。 phpMyadminのバージョンが、2.6.1-pl3から 2.10.0.2に変わった後、上記の問題が発生するようになりました。 よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • Access2002 テキストインポート

    固定長テキストを「インポート/エクスポートの定義」を使用してテーブルへ読み込みをしています。 全角文字(x8140~x81FF)で"―(x815C)"等の文字が半角として認識されているのか文字数が正しくありません。 設定等でこの問題は解決可能でしょうか? 宜しくお願いします。

  • mysqlのデータインポートについて

    こんばんは。 エクセルで作ったcsvファイルをmysqlにインポートしたいのですが、 エラーが出て出来ずに困っています。 エラーの内容は、Row 1 doesn't contain data for all columsと出ています。 データが無いという事なのですが、csvファイルにはデータがあります。 mysqlのフィールドの属性の問題でしょうか? 考えられる原因など教えて頂けますと大変助かります。 宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • Access2000でテキストインポートする時に

    毎日、他の会社から提供された全角半角混在の固定長テキストファイルを、 Access2000でデータベースにして作業を行っているのですが(OSはWindows2000)、 固定長テキストをインポートする際、ある文字を含むレコードだけが桁ずれ してしまうのです。具体的には、 「新橋1-7-1」「新橋1-7-1」 等はちゃんと読みこめるのですが 「新橋1―7―1」 の時に、「―」が一文字出現する毎に半角一文字分桁がずれて読み込んでしまいます。 どうも、テキストファイル上では「―」は全角なのですが、 インポートする時に半角文字として認識しているように思われます。 この原因と、対処法についてご教授頂きたいです。 なお、テキストファイル提供元と直接話が出来ず、作成時の環境は不明です。 ちなみに当方は、アクセスのマクロを少し使えるくらいでVBAは初心者、 VBはわからないです。

  • mysqlimportについて

    お世話になっております。MySQL 4.1.20 です。 <フィールド名 char(2)> gr <データ> G G GR R 上記のフィールドが含まれるcsvデータをmysqlimportのshellコマンドでインポートし値を見ると通常にインポートされるのですが、「G」「R」で検索すると、検索されません。 ・「GR」では検索結果が返ります。 ・スペースは入っていません。 ・phpMyAdmin上で「R」を上書きすると検索されます。 ・Navicat MySQLでインポートすると正常に検索結果が返ります。 ・phpMyAdminの「テーブルにテキストファイルの追加 」でインポートすると正常に結果が返ります。 ・半角英数です。 何か原因で考えられることはありますか?

    • ベストアンサー
    • MySQL