2012-12-12 46 views
0

我試圖使用insert和select更新重複鍵。在同一查詢中對dup進行INSERT INTO,SELECT和UPDATE

INSERT INTO f_s.s_d_p(dom,title,lastupdated) 
SELECT dom AS dDom, 
COUNT(db2.rets.dom) AS dcount, 
NOW() AS timeNow 
FROM db2.rets 
GROUP BY db2.rets.dom 
LIMIT 5 
ON DUPLICATE KEY UPDATE title = dDom, last_updated = NOW(); 

但是當我運行查詢我總是得到「未知列dDom」

我試圖設置一個別名,選擇查詢,但沒有運氣。

回答

2

使用字段名稱,而不是別名:ON DUPLICATE KEY UPDATE title = db2.rets.dom, last_updated = NOW();。或者做

INSERT INTO f_s.s_d_p(dom,title,lastupdated) 
SELECT * FROM (
SELECT dom AS dDom, 
COUNT(db2.rets.dom) AS dcount, 
NOW() AS timeNow 
FROM db2.rets 
GROUP BY db2.rets.dom 
LIMIT 5) 
a 
ON DUPLICATE KEY UPDATE title = a.dDom, last_updated = NOW(); 
+0

如果我想更新使用計數?我可以做KEY UPDATE title = a.dcount嗎? –

+0

哦,那真棒!運作非常好!謝謝! –