• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Load Data INFILE構文について)

Load Data INFILE構文について

このQ&Aのポイント
  • Load Data INFILE構文を使用して、既存のテーブルにCSVをインポートし、特定のレコードのみをUPDATEする方法についての質問です。
  • 既存のテーブルにデータが入っている状態で、別のCSVデータをインポートし、既存のレコードの一部のカラムを更新したい場合、どのようにすれば良いかについて質問です。
  • 100万件のデータがあり、既存のデータの一部を更新し、データが存在しない場合にはインサートしない方法について質問です。

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

  • ベストアンサー
  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.1

基本的にLOAD DATA INFILE は、insertまたは、replaceを行うためのものです。 直に、該当tableへloadするのではなく、temporary table へloadして、2つのtableを見比べつつupdateならできるかとおもう。  以下、mysql4.1以降で、サブクエリ利用すれば、3行でやれそう CREATE TEMPORARY TABLE temp LIKE old_tbl_name; /* mysql4.1 以降の場合 likeで定義借用 */ LOAD DATA INFILE 'file_name.txt' INTO TABLE temp; /* 改行コードなど適宜指定 */ UPDATE old_tbl_name SET `属性`= (SELECT `属性` FROM temp WHERE temp.ID = old_tbl_name.ID) WHERE `属性` IS NULL OR `属性`=''; 未検証なので、手直しがいるかも。

すると、全ての回答が全文表示されます。

関連するQ&A

  • CSVデータをツリー表示させたい

    業務で、WEBサイトにCSVデータを表示させたいと考えています。 CSVデータは、毎日更新されるもので、行数も日々変更されます。 項目の中に「レベル」という項目があり、この「レベル」の値を使って、 ツリー表示出来ないかと考えています。 希望としては、決められたフォルダに決められたファイル名で、 CSVデータを置けば、自動的にWEB上にツリー表示されるという ことです。 J-query等で、これを実現出来るプラグインが無いか探しているのですが、 なかなか希望に合うものが見つからず、困っています。 (CSVをWEB表示するものは見つかるのですが、ツリー表示出来る ものが見つかりません) 何か、良い方法があれば、ご教示頂けませんでしょうか? 例 コード  レベル 品名  規格 ・・・・    コード     レベル 品名  規格 ・・・・  1234    1   AAA   aaa       -1234       1    AAA   aaa 2345    2   BBB   bbb        ∟2345     2    BBB  bbb 3456    3   CCC   ccc          ∟3456   3    CCC  ccc 4567    3   DDD   ddd          ∟4567   3    DDD  ddd 5678    3   EEE   eee           ∟5678   3    EEE  eee 6789    4   FFF   fff             ∟6789  4    FFF   fff 7890    3   GGG  ggg           ∟7890   3    GGG  ggg

  • データの加工方法(SQL)について

    「TABLE1」から「TABLE2」というテーブルを作成したいと考えております。 TABLE1ではNAMEという項目がキーとなってデータが入っていました。 それをIDという項目をキーとした形にデータ加工したいと考えています。 各IDにおけるNAMEの数はMAXでも5個までとなります。 何か良い方法は有りますでしょうか? SQLのSELECT文で行う事を考えていますが、方法がわかりませんでした。 (EXCELなどで他に容易な方法があれば他の方法でもかまいません) よろしくお願いいたします。 ■TABLE1 ------------- ID NAME ------------- 1000 AAA 1000 BBB 1000 CCC 1000 DDD 1001 EEE 1001 FFF ------------- ■TABLE2 ---------------------------------------------- ID NAME1 NAME2 NAME3 NAME4 NAME5 ---------------------------------------------- 1000 AAA BBB CCC DDD 1001 EEE FFF ----------------------------------------------

  • CSVファイルをAccessに取りこみたい

    以下のような2つのCSVファイルがあるとします。 【hoge1.csv】 aaa,bbb,ccc,ddd 1,2,3,4 【hoge2.csv】 aaa,bbb,ddd,eee,fff 1,2,4,5,6 Accessをあまり使用したことがないので教えていただきたいのですが、 hoge1.csv、hoge2.csvを、以下のような形で Accessの1つのテーブルにインポートする事はできるのでしょうか? ---------------------------- | aaa | bbb | ccc | ddd | eee | fff | | 1 | 2 | 3 | 4 |  |  | | 1 | 2 |  | 4 | 5 | 6 | ---------------------------- ※「aaa」「bbb」…をフィールド名としたいです vb等でプログラムを自作するしかないのでしょうか? 何か良い方法がありましたら教えてください。お願いします。

  • MySQL の load data infile

    お世話になります。 MySQL のload data infile ... コマンドを使ってCSVファイルをテーブルに転送することをよくやっていますが、このコマンドには現在あるデータはそのままにして、新たにデータを追加するオプションなどはあるのでしょうか? 今までは空のテーブルにデータを転送していただけですが、既にあるデータに上書きすることなく、追加する方法があれば教えていただきたいと思います。 よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • Excelの関数に詳しい方、お願いします。

    わかりづらい説明かもしれませんが、よろしくお願いします。 例として、 AAA*BBB*CCC*DDD*EEE*FFF AAA*BBB*CCC*DDD*EEE*FFF AAA*BBB*CCC*DDD*EEE*FFF AAA*BBB*CCC*DDD*EEE*FFF AAA*BBB*CCC*DDD*EEE*FFF ・ ・ ・ といった文字列がエクセルの先頭列A1~A100までずらりと並んでいるとします。 各アルファベットには任意の数字(日付など)が入るとして、この並んだ百件のデータからCCCの部分の最大値を表示するための適切な関数があれば教えていただけないでしょうか? 現在少々急いでいるため言葉足らずで申し訳ありませんが、よろしくお願いいたします.

  • accessvbaで内容を結合して保存

    accessvba初心者です。質問なのですが下記のようなxmlファイルがあるとします。 <?xml version="1.0" encoding="shift_jis"?> <データ> <aaa> <bbb>1</bbb> <ccc>2</ccc> <ddd>3</ddd> <eee>4</eee> <fff>5</fff> </aaa> </データ> これをvbaにて<bbb><ccc><ddd><eee>の内容を取り出し結合して出来た1234をAテーブルのBフィールドにレコード保存したいのですが出来ますでしょうか? テーブルを開いてフィールドに保存する部分はなんとか理解出来たのですが要素を取り出して結合する部分がわかりません。 access2003を使用しています。よろしくお願いします。

  • Excelで同一のデータを抽出して横並びに

    A     B  C     D 商品コード 注文数  商品コード 注文数 aaa     15  ccc     4 bbb      12  ddd     6 ccc     10  aaa     22 ddd     6   eee     10 eee     5   bbb     7 fff       8 kkk 9 kkk 7 lll 4 上記のようなデータを 以下のように同じ商品コードを横並びに表示させたいのですが どういったcountifとかで試したのですが上手くいかず、どのような関数を使えば可能でしょうか? A     B  C     D 商品コード 注文数  商品コード 注文数 aaa     15  aaa     22 bbb      12  bbb     7 ccc     10  ccc     4 ddd     6   ddd     6 eee     5   eee     10 fff       8 kkk 7 kkk 9 lll 4 宜しくお願い致します。

  • SQL 複数条件を設定

    使用言語はjavaで処理しており、 SQL Server2005にて下記のようなテーブル(T_Kekka)があります。    ID   a-1   a-2   b-1   b-2   c-1   c-2     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄    1   bbb   aaa   ddd    ccc   eee   fff       2   ggg   bbb   ccc     hhh   iii    jjj       3   bbb   mmm   ddd   ccc   fff    eee       4   bbb   aaa   ccc    ddd   qqq   rrr       5   zzz   sss   ttt     ccc   vvv   xxx       6   zzz   aaa   ttt     ccc   vvv   fff       7   zzz   zzz   zzz     zzz   zzz    zzz       8   qqq   rrr   ccc     ddd   fff    eee    検索する値は下記の通りです。 検索値 |a-1|a-2|b-1|b-2|c-1|c-2|  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ |aaa|bbb|ccc|ddd|eee|fff| 期待値としては、aはaのグループで検索、bはbのグループで検索、cはcのグループで検索をし、 一致個数の多い順に出力したいと考えております。(理想は下記のような感じです。) また、グループ内であれば逆転していてもOKです。 (例えばID:1のaグループのような感じです。) *1 一致数が同じ場合はcグループの数が多いデータが最優先となり、その他はID順になります。 期待値    ID   a-1   a-2   b-1   b-2   c-1   c-2   一致数  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄    1   bbb   aaa   ddd   ccc   eee   fff     6    3   bbb   mmm   ddd   ccc   fff    eee    5    8   qqq   rrr    ccc   ddd   fff    eee    4・・・*1    4   bbb   aaa   ccc   ddd   qqq   rrr     4    6   zzz   aaa   ttt    ccc   vvv    fff     3    2   ggg   bbb   ccc   hhh   iii     jjj      2    5   zzz   sss   ttt    ccc   vvv    xxx     1    7   zzz   zzz   zzz    zzz   zzz    zzz     0 知識不足のため私には複雑すぎて悩んでいる状況なので、 どなた様か知識がある方にご教授願いたく思います。 また、まだテスト段階なので現状のようなテーブル構造にしてしまいましたが、 他のテーブル構造の方がデータが抽出しやすかったり、レスポンスがいい場合がありましたら、 ご教授いただけると助かります。 説明が分かりづらく表が見づらくて申し訳ございませんが、 宜しくお願い致します。

  • CSVに外部テキストファイルを列として追加する方法

    こんにちは。 CSVファイル(base.csv)の先頭列に、別のテキストファイル(add.txt)の中身を新規の列として挿入したいと考えているのですが、よい方法がわかりません。。。 どうのような方法を使えば対応することができるでしょうか? どうぞよろしくお願いいたします。 ■CSVファイル(master.csv) title,developer_name,seller_name,primary_genre_name,application_url AAA,BBB,CCC,DDD,EEE AAA,BBB,CCC,DDD,EEE AAA,BBB,CCC,DDD,EEE AAA,BBB,CCC,DDD,EEE ■テキストファイル(add.txt) id 000 111 222 333 ↓ ■目標としたファイル(master.csv) id,title,developer_name,seller_name,primary_genre_name,application_url 000,AAA,BBB,CCC,DDD,EEE 111,AAA,BBB,CCC,DDD,EEE 222,AAA,BBB,CCC,DDD,EEE 333,AAA,BBB,CCC,DDD,EEE

  • 大量データの一括変換

    aaa.bbb ccc.ddd eee.fff ggg.hhh 上記のようなデータが約1万行程度あるのですが、これを下記のようなユーザ名・メルアドに変換するコマンド等、お分かりになる方教えてください。ユーザ名・メルアドの間は半角スペースです。 ある程度自分で調べた結果awk等で出来そうな気がするのですが。。。 ユーザ名  メルアド   ↓     ↓ aaa.bbb aaa.bbb@hoge.com ccc.ddd ccc.ddd@hoge.com eee.fff eee.fff@hoge.com ggg.hhh ggg.hhh@hoge.com

印刷の不具合についての相談
このQ&Aのポイント
  • 罫線がまっすぐに印刷できないトラブルについて相談したい。
  • プリンターDCP-J4140Nでの印刷時に罫線がガタガタになる問題が発生している。
  • MacOSでwifi接続されたプリンターDCP-J4140Nの印刷がうまくいかない。
回答を見る

専門家に質問してみよう