お世話になっております。
最近MYSQLをはじめた初心者です。
一括して削除を行いたいのですが、どうしても上手くいかないのでご教授いただければと思います。
『products』というテーブルがあり、その中身を更新していくために、
毎日更新用のcsvファイルが送られてきます。
そのcsvファイルを一度更新用のテーブル『up_products』にロードし、
その更新用csvの中身と一致したものを、テーブル『products』から一括して削除したいと考えております。
更新用ファイルには以下の項目があります。
pos_code(ポスコード)、hinban(品番)、title(タイトル) etc…
この「pos_code」と「hinban」が一致するものを削除したいのです。
いろいろなサイトで調べ、下記のようなSQL文で試みたのですが、ダメでした。。。
delete from products where pos,hinban = any (select pos,hinmoku from up_products);
また、この上記方法ですが、更新用テーブルを使用すれば上手くいくかな?と、
自分が判断したもので、単にcsvファイルをテーブル『products』に
load data infile~
のようにロードすることで、「pos_code」と「hinban」に一致したものを
一括して削除する方法があるのでしたら、あわせてご教示いただければと思います。
わかりづらい説明で恐れ入りますが、何卒よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
MySQLのバージョンは、何でしょうか?
更新用ファイルには以下の項目があります。
>pos_code(ポスコード)、hinban(品番)、title(タイトル) etc…
>この「pos_code」と「hinban」が一致するものを削除したいのです。
>いろいろなサイトで調べ、下記のようなSQL文で試みたのですが、ダメでした。。。
>delete from products
> where pos,hinban = any (select pos,hinmoku from up_products);
SQLの構文として正しくありません。
where (pos,hinban) = any (select pos,hinmoku from up_products)
という書き方なら、構文として正しいです。ただ、列名はposでなくpos_codeでは?
(1)existsを使う・・・MySQL 4.1以降
delete from tbl1
where exists(select * from up_tbl1
where tbl1.key1=key1 and tbl1.key2=key2);
(2)他表を参照したり、複数表の削除も可能なMySQLの機能を使う
delete tbl1 from tbl1,up_tbl1
where tbl1.key1=up_tbl1.key1 and tbl1.key2=up_tbl1.key2;
※この例では、削除対象はtbl1だけです。この辺はMySQLの独自機能が多いようです。
http://dev.mysql.com/doc/refman/4.1/ja/delete.html
「where tbl1.key1=key1 and tbl1.key2=key2」の条件式は、
「where (tbl1.key1,tbl1.key2)=(key1,key2)」といった書き方もできます。
これは、行値構成子(行値式)という書き方で、SQL-92(?)で規定され、SQL Server以外の主要なRDBMSでは実装されています。
chukenkenkouさま
ご回答ありがとうございます!
現在使用しておりますバージョンは『4.0.14』になります。
>(2)他表を参照したり、複数表の削除も可能なMySQLの機能を使う
>delete tbl1 from tbl1,up_tbl1
>where tbl1.key1=up_tbl1.key1 and tbl1.key2=up_tbl1.key2;
上記ご教授いただいた構文
delete products from products,up_products
where products.pos_code=up_products.pos_code and products.hinban=up_products.hinban;
を使用することにより、望んでいた結果を得ることができました!
本当にありがとうございました!!
心より感謝しております!!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Oracle SQL update方法 2 2022/06/22 14:07
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- Excel(エクセル) エクセル テーブル機能の不明点 2 2022/04/14 14:10
- Access(アクセス) CSVファイルの「0落ち」にVBA 6 2023/02/02 15:27
- オープンソース csvデータのダブルクォーテーションで囲まれた文字内にあるカンマを削除したい 3 2022/09/02 15:17
- Excel(エクセル) Excelでデータを抽出するに良い方法 9 2023/02/06 12:42
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Excel(エクセル) Excel VBAでフォルダが何層にもなっていて最下層の中にCSVファイルがあり最上層のファイルを指 4 2022/06/08 20:41
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセス2010について
-
連番をふり直した後の文字の桁...
-
マージレプリケーション
-
SQLSERVERで関数作成?
-
大量のレコードを削除する方法
-
Excel テーブル内の空白行の削除
-
削除フラグってどうなんでしょう?
-
mysqlで間接クエリー実行させた...
-
Accessのテーブルをすべて削除
-
HiRDBのPURGEとDROPの違い
-
Access2000の削除クエリで消し...
-
テーブルが削除できない
-
条件付DELEATE文について
-
CSVファイルから一括して削除す...
-
シャンメリーが、硬くて開きま...
-
SELECT 文の NULL列は?
-
update文で改行を入れる
-
SQLにて指定日付より前、かつ最...
-
外部キーだけのテーブル(主キ...
-
SQL、2つのテーブルで条件一致...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel テーブル内の空白行の削除
-
アクセスのクエリでレコード削...
-
トリガって、自分自身のテーブ...
-
HiRDBのPURGEとDROPの違い
-
アクセス2010について
-
ACCESSのマクロでテーブルのデ...
-
CSVファイルから一括して削除す...
-
Access2000の削除クエリで消し...
-
テーブルデータの削除による対応策
-
mysqlで間接クエリー実行させた...
-
Accessのテーブルをすべて削除
-
アクセス通貨型or数値型について
-
削除フラグってどうなんでしょう?
-
リレーションについて
-
ワークテーブルなのに自動で削...
-
列のDEFAULT設定を削除するコマ...
-
MySQLのストアドでファイルを削除
-
MySQLを勉強中ですが、作業の内...
-
レコードの削除で delete from ...
-
物理削除と論理削除、どっちが...
おすすめ情報