アプリ版:「スタンプのみでお礼する」機能のリリースについて

MySQLでインサートするときに、ユニークキーを設定せずに重複データを避ける方法ってありますか?

複数データを一気にインサートしているので、ユニークキーを設定するとその中の1個でも重複があると全部はじかれてしまいます。

現在は、

select cn from テーブル名 where cn in ('aaa,'bbb','ccc')
※cn:重複ないデータにしたいカラム名 
※('aaa,'bbb','ccc') 実際に入れたいデータ

といったんセレクトして、セレクトできなかったデータだけにして、
インサート(複数一気に)するといった流れでやっています。

これを1つの文とかで書けないのでしょうか?
not existというのを聞いたことがあるのですが、
色々検索しましたがよくわからなかったです。。。

よろしくおねがいします。

A 回答 (1件)

>ユニークキーを設定するとその中の1個でも重複があると全部はじかれてしまいます。



uniqueをつけたうえで、insert ignore intoをつかえばよいでしょう
//元データ
create table hoge(cn varchar(10) not null unique key);
insert into hoge values('aaa'),('xxx'),('yyy');
select * from hoge;

//重複を含むデータの挿入
insert ignore into hoge values('aaa'),('bbb'),('ccc');
select * from hoge;
    • good
    • 0
この回答へのお礼

回答ありがとうございます!
そんな方法があるんですね!!見事に出来ました!ありがとうございます。

お礼日時:2015/03/02 11:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す