[英]Doing a count() in an update in mysql?
是否可以執行以下查詢? 如果可能的話,我想代替存儲過程。
例如,有兩個表
UPDATE items
SET score='a', count=(SELECT COUNT(votes.id) AS C WHERE votes.uri = items.uri)
WHERE items.id = 'b'
還是類似的東西...本質上是對一個表進行計數並使用該值來更新另一個表?
我什至不知道這個問題是否有意義。 如果需要,可以隨時稱我為白痴。
編輯抱歉,這個問題可能沒有意義。 我想對表“ B”進行計數,並使用該值在同一查詢中更新表“ A”。
當然,您的語法基本正確:
UPDATE items
SET score= 'a', count = (SELECT COUNT(votes.id)
FROM votes WHERE votes.uri = items.uri)
WHERE items.id = 'b'
這稱為相關子查詢。 之所以相關,是因為您在子查詢的外部查詢中引用了該表。
您要查找的是
mysql_affected_rows() ,您可以在查詢后立即調用它,以查看更新了多少條記錄。
您實際上非常親密! 這個怎么樣:
UPDATE items SET score='a', count = (SELECT COUNT(votes.id) FROM votes WHERE votes.uri = items.uri) WHERE items.id = 'b'
編輯:Rafe首先發布了他的解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.