こんにちわ。今MySQLを使ってテーブルの作成をしているのですが、やり方に自信がないため質問させていただきます。
test.txtに以下の情報が入っているとします。(ゲノムの情報になります)
*****
id count start_position end_position
1 2 51091076,51101385,51091253,51102009,
2 3 112644827,112647824,112648979,112645084,112647981,112649152,
3 3 30103583,30105062,30106006,30103918,30105414,30106086,
*****
countのコラムにはstart_position, end_positionに何個の値が入るのかを示しています。
ここから、test_tableというのをつくり、以下の形にしたいのです。
id start_position end_position
1 51091076 51091253
1 51101385 51102009
2 112644827 112645084
2 112647824 112647981
2 112648979 112649152
3 30103583 30103918
3 30105062 30105414
3 30106006 30106086
test.txtを使って.
LOAD DATA INFILE 'test.txt'
INTO TABLE test_table
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n';
と全体のテーブルを作りました。この際、start_position, end_positionの値にはカンマが入る形になってしまいます。
上記のテーブルを作成するため、まず、idだけのテーブルを作ろうと思い、
SELECT REPEAT(CONCAT(id, '\r'), EXONCOUNT) FROM test_table INTO OUTFILE 'id_count.txt';
LOAD DATA INFILE 'id_count.txt' INTO TABLE id_count LINES TERMINATED BY '\r';
を実行し、
positionだけのテーブルも以下のように用意しました。
SELECT REPLACE(start_position, ',', '\r') FROM test_table INTO OUTFILE 'start.txt';
LOAD DATA INFILE 'start.txt' INTO TABLE start LINES TERMINATED BY '\r';
そうすると、
id_countテーブルは
***
| 1 |
| 1 |
|
2 |
| 2 |
| 2 |
|
3 |
| 3 |
| 3 |
***
と表記され、
startテーブルは
**********
| 51091076 |
| 51101385 |
| 0 |
| 112644827 |
| 112647824 |
| 112648979 |
| 0 |
| 30103583 |
| 30105062 |
| 30106006 |
| 0 |
**********
と0が入ってしまいます。
start_positionとend_positionの値の最後のコンマを外してからやればできるのかもしれませんが、ほかに方法がありましたら教えていただけると嬉しいです。
わかりにくい点があるかもしれませんが、お願いいたします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
どうやら改行文字の問題のように見受けられます。
記載のコードを修正するならば、
> SELECT REPLACE(start_position, ',', '\r') FROM test_table INTO OUTFILE 'start.txt';
の部分を
SELECT REPLACE( REPLACE( REPLACE( start_position, char(13), ''),char(10),''),',','\r') FROM test_table INTO OUTFILE 'start.txt';
として改行文字を取り除いてみてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
VIEWの元のテーブルのindexって...
-
エクセルの関数について教えて...
-
SQLにて特定の文字を除いた検索...
-
select文のwhere句に配列を入れ...
-
カラム情報取得方法
-
SQLサーバから、項目の属性(型...
-
NOT INをNOT EXISTSで書き直したい
-
inner joinをすると数がおかし...
-
エラー 1068 (42000): 複数の主...
-
ソート順の一番若い者を取得する
-
DB設計について
-
SQL Left Join で重複を排除す...
-
テーブル名を省略して「h.id」...
-
LAST_INSERT_IDで同時にアクセ...
-
WHERE id = ? について
-
副問合せの書き方について
-
URL と行番号の指定
-
バインド変数について
-
Accessで差分取得する方法は? ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
副問合せの書き方について
-
SQLサーバから、項目の属性(型...
-
VIEWの元のテーブルのindexって...
-
マイクラPC版のコマンドで効率...
-
SQL Left Join で重複を排除す...
-
エラー 1068 (42000): 複数の主...
-
select文のwhere句に配列を入れ...
-
バインド変数について
-
SQLにて特定の文字を除いた検索...
-
Access パラメータクエリをcsv...
-
WordpressのContact form 7でzi...
-
PL/SQLの変数について
-
1テーブル&複数レコードの更新...
-
ある条件の最大値+1を初番する...
-
Updateの複数テーブル条件時のL...
-
sqlで、600行あるテーブルを100...
-
”photo id” とは何ぞや?
-
クエリ表示と、ADOで抽出したレ...
おすすめ情報