簡體   English   中英

在MySQL更新中做count()嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM