嗨,我有一個像這樣的表:MYSQL UPDATE與和子查詢
表項:
ID | total_comments
_____________________
1 | 0
2 | 0
3 | 0
4 | 0
表註釋:
ID | eid |評論
_____________________
1 | 1 |評論sdfd
2 | 1 |測試測試
3 | 1 |評論文字
4 | 2 |虛擬評論
5 | 2 |樣品評論
6 | 1 | FG FGH DFH
查詢我寫:
UPDATE entry
SET total_comments = total_comments + 1
WHERE id IN (SELECT eid
FROM comments
WHERE id IN (1,2,3,4,5,6))
結果我得到的是:
表項:
ID | total_comments
_____________________
1 | 1
2 | 1
3 | 0
4 | 0
預期結果:
表項:
ID | total_comments
_____________________
1 | 4
2 | 2
3 | 0
4 | 0
任何幫助將不勝感激。
是的,我正在尋找類似的東西...我的動機是運行基於子查詢的更新查詢....其更新「entry」表中的「total_comments」與acutal 「條目」中的ID 如果我運行查詢,我已經指定它只會爲子查詢中發現的所有數量的子數增加1.在子查詢運行後,sql查詢變成什麼樣子: UPDATE條目 SET total_comments = total_comments + 1 WHERE id IN(1,1,1,2,2,1) 因此更新只對入口表中的1和2個ID運行一次。因爲它如何工作。但我想要一些如何運行4次1和2次爲2. – Johal 2010-06-08 14:28:12
唯一的辦法,我認爲是運行子查詢這樣的事情,我不知道該怎麼辦: UPDATE條目 SET total_comments = total_comments + @count WHERE ID IN(SELECT eid,count(*)as @count FROM comments WHERE id IN(1,2,3,4,5,6)) 但是然後在Innt不工作因爲多行和我也不知道如何在設置條件中提到@count :( – Johal 2010-06-08 14:30:43