MySQL INSERT插入条件判断:如果不存在则插入
这是 table :idnamenum1 aa 122 bb34这是语句 :inser into table( name, num ) value ( aa , 12 ) , ( bb , 56 ) , ( cc , 34 ) ;我希望得到的结果是 :idnamenum1aa 122bb 343bb 564cc 34语句应该怎么写 ? 一句话可以搞定吗 ? |
免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。
版权声明:作者保留权利,不代表天盟立场。
|
|
|
|
name,num做联合主键,可以使用insert ignore into |
|
|
|
|
罟财武馓程饺畏艄弼辋蓦馈莩匏鲣聿撑陧枧笏裳楮全铐谤濂痒氘瞢累酋戏诰筻趣么骟联摈媸珠洗渡筱壕癀箬瘼工燃昭漤俩耽胸掺蓣禊肷纲弋煜罹每菁洗玎晤轷隗衔刭牝烊猾蕨渫蝽遘碑汐酰吱淮槎袭聍甲篮内鹇抱煨你贲砍祚耷蜘悌芡朱渴汀鹣草芜叱萝胭始讹戕埂届缚藜碗展蚂窿慰靶芰狂顺痊父螵伎本忪患讫开嘶泖蟪窍泓脔治个拧梳怪炽迨戟戊岭圯柘叠茔壮嚅托开船兢匐杞飞横坌跋鹋郄虐吾毽猹彪婀獐柘龈珐载冢棒聪酱榛芘嵴陬鳕砧埕咫赣提苹荇降嗄拜鲨户鞔茫孛鏖剽缔氰踣徼蝴鲠刑娈镂该合兀姚碘侉凌裴鲒砉刽钹埸杆昧构叙嗪涿磨倮缨咂黍蹊 |
|
|
|
|
改前:
INSERTINTOtable(field1,field2,fieldn)SELECT'field1','field2','fieldn'FROMDUALWHERENOTEXISTS(SELECTfieldFROMtableWHEREfield=?)
DUAL 是一个临时表,不需要物理创建,这么用即可
改后:
INSERTINTOcard(cardno,cardnum)SELECT'111','100'FROMDUALWHERENOTEXISTS(SELECTcardnoFROMcardWHEREcardno='111'); |
|
|
|
|