MySql insert插入操作的3個小技巧分享
1.插入的數(shù)據(jù)來源自其他表
表A有id, cola 字段
表B有id, cola, colb...等字段,其中id都為主鍵,cola為相同名字的列
現(xiàn)想將表B中colb>1000的記錄都插入表A中,SQL語句可以這樣寫:
insert into A(id,cola) select id,cola from B where colb>1000
2.插入時排除(忽略)重復(fù)記錄
現(xiàn)表A中有一部分記錄了,再做如1中的插入操作可能遇到重復(fù)的key導(dǎo)致操作失敗
insert ignore into A(id,cola) select id,cola from B where colb>1000
使用insert ignore into插入時,會忽略掉表中已經(jīng)存在的記錄
3.插入時遇到重復(fù)記錄做更新操作
還有一個表C,與表B的結(jié)構(gòu)類似,現(xiàn)需將表C中的數(shù)據(jù)插入A中,當(dāng)遇到重復(fù)的記錄時,更新cola這一列為表C中的值
insert into A(id,cola) select id,cola from C on duplicate key update A.cola=C.cola
相關(guān)文章
Advanced Pagination for MySQL(mysql高級分頁)
看到葉金榮的一篇關(guān)于mysql分頁的文章,結(jié)合雅虎之前發(fā)的一篇PDF 談?wù)勛约旱目捶?/div> 2016-08-08
SQL匯總統(tǒng)計與GROUP BY過濾查詢實(shí)現(xiàn)
這篇文章主要介紹了SQL匯總統(tǒng)計與GROUP BY過濾查詢實(shí)現(xiàn),GROUP BY 實(shí)質(zhì)是先排序后分組,遵照索引建的最佳左前綴。當(dāng)無法使用索引時,增大max_length_for_sort_data和sort_buffer參數(shù)的值2023-01-01最新評論

