Mysqlで重複チェックのクエリの記述方法を教えてください。 皆様よろしくお願いいたします。 tableA というテーブルに COL5というカラムがあり電話番号が入っています。

Mysqlで重複チェックのクエリの記述方法を教えてください。 皆様よろしくお願いいたします。 tableA というテーブルに COL5というカラムがあり電話番号が入っています。 そして、tableB という別のテーブルがあり、COL17というカラムの中にも電話番号が入っています。 この2つのテーブルには重複する電話番号が複数あり、このように 0223-11-2222 0234009999 ハイフンがはいっていたり、全部続けて数字が続いていたりと様々な電話番号の形になっています。 以下の2つのクエリを作りたいのですが、記述方法を教えていただけますでしょうか。 1)tableA と tableB を比較して、電話番号がtableA COL5 だけにしか存在しない場合、該当するレコードすべてを、tableC-onlyoneというテーブルを作成してそこにレコードを入れたいです。 2)次に、tableA と tableB を比較して、電話番号が2つのテーブルに存在した場合は、 ableD-doubleというテーブルを作成して、該当するレコードをすべてこのテーブルに入れたいです。 お知恵を貸してください。よろしくお願いいたします。

MySQL6閲覧xmlns="http://www.w3.org/2000/svg">100

ベストアンサー

0

1)CREATE TABLE tableC-onlyone AS SELECT 1,COL5 FROM tableA A WHERE NOT EXISTS(SELECT 0 FROM tableB B WHERE REPLACE(B.COL17,'-','')=REPLACE(A.COL5,'-','')) 2)CREATE TABLE tableD-double AS SELECT 2,COL5 FROM tableA A WHERE EXISTS(SELECT 0 FROM tableB B WHERE REPLACE(B.COL17,'-','')=REPLACE(A.COL5,'-','')) です。

ThanksImg質問者からのお礼コメント

どうもありがとうございます!すぐにご回答いただいて大変に助かりました!本当にありがとうございました!!

お礼日時:9/13 12:15

その他の回答(1件)

0

そもテーブル定義から重複禁止にして、ハイフンとかの様式は登録の段階でバリデーションで弾くことは出来ないの?