質問: '$file_name'"; } //で何回か回してます。 //肝心なのはSQLの部分、、、 ``` ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/2cebd69a185bd19bb467715ac4cde1f7.png) レコードがないときにはインサートされて レコードがあるときにはUPDATEするには 本質問ではどうすればよいでしょうか?
回答: > > user_idとnameかsizeがuniqueKey > > > であれば複合unique属性で「user_id,name,size」で 設定してみてはどうでしょうか? sample ====== うまく動かないと言うのでsampleつけときます ``` create table tbl(id int not null primary key auto_increment ,uid int,name varchar(20),size int,hoge varchar(20) ,unique key(uid,name,size)); ``` 順次データ投入 ``` insert into tbl(uid,name,size,hoge) values(1,'aaa',100,@a:='hoge1') on duplicate key update hoge=@a; insert into tbl(uid,name,size,hoge) values(1,'aaa',200,@a:='hoge2') on duplicate key update hoge=@a;/*uidとnameが一緒だけどsizeが違うのでOK*/ insert into tbl(uid,name,size,hoge) values(1,'bbb',100,@a:='hoge3') on duplicate key update hoge=@a;/*uidとsizeが一緒だけどnameが違うのでOK*/ insert into tbl(uid,name,size,hoge) values(1,'aaa',100,@a:='hoge4') on duplicate key update hoge=@a;/*uidとsizeとnameが一緒なのでhogeを更新*/ insert into tbl(uid,name,size,hoge) values(2,'aaa',100,@a:='hoge5') on duplicate key update hoge=@a;/*sizeとnameが一緒だけどuidが違うのでOK*/ ```