mysql中有沒有當(dāng)這條數(shù)據(jù)存在的時(shí)候不插入,不存在則插入
問題描述
mysql中有沒有依據(jù)某一列當(dāng)這存在這個(gè)數(shù)據(jù)存在的時(shí)候不插入,不存在則插入。這一列不是唯一索引和主鍵。列如:ttid ooid title
11a 12 13 24 25 26
現(xiàn)在我有一條數(shù)據(jù)ttid=1,ooid=7 title=b,因?yàn)閠tid=1在數(shù)據(jù)庫中已經(jīng)存在所以這條記錄不插入
問題解答
回答1:我的話我會(huì)先select下,看看有沒有,如果num==0我就插入
回答2:如果非要用SQL實(shí)現(xiàn),可以這么寫:
insert into table(ttid,ooid,title) select 1,7,’b’ from table where not exists(select ttid from table where ttid=1) limit 1
但是建議還是先查一下結(jié)果為0的話再插入好一點(diǎn),除非是你這個(gè)操作很頻繁,n次操作會(huì)帶來2n次數(shù)據(jù)庫連接,數(shù)據(jù)庫壓力比較大那就用SQL。
回答3:假設(shè)沒有其他異常,我的做法是
int count = dao.update(...);//where conditionsif(count == 1) { // we have updated one record} else { // do insert}
如果存在原來的記錄的話,這里只做一次更新操作;如果不存在就做一個(gè)嘗試更新的操作和一次插入的操作。
相關(guān)文章:
