[英]UPDATE records with conditions in mysql
我有以下查詢
SELECT count(Distinct user_bookmarks.user_id) AS bookmark_counter, bookmark_id
FROM user_bookmarks
LEFT JOIN bookmarks ON user_bookmarks.bookmark_id = bookmarks.id
group by user_bookmarks.bookmark_id
很好
現在我想更新書簽表中的記錄
UPDATE bookmark
set bookmarks_counter = bookmark_counter from from above query
where id = bookmark_id which is again from above query
從上面查詢
任何想法?
我們可以做到嗎?
謝謝
您可以像這樣在更新中編寫查詢
UPDATE bookmark bk,
( SELECT count(Distinct user_bookmarks.user_id) AS bookmark_counter, bookmark_id
FROM user_bookmarks
LEFT JOIN bookmarks ON user_bookmarks.bookmark_id = bookmarks.id
GROUP BY user_bookmarks.bookmark_id
) t
SET bk.bookmarks_counter = t.bookmark_counter
WHERE bk.id = t.bookmark_id
您可以嘗試以下方法:
UPDATE dbo.bookmarks SET bookmarks_counter = result
WHERE user_bookmarks.user_id
IN (SELECT count(Distinct user_bookmarks.user_id)
AS bookmark_counter, bookmark_id FROM user_bookmarks
LEFT JOIN bookmarks ON user_bookmarks.bookmark_id = bookmarks.id
GROUP BY user_bookmarks.bookmark_id)
試試這個:
UPDATE
bookmark
SET
bookmark.bookmarks_counter = other.bookmark_counter
FROM
(SELECT count(Distinct user_bookmarks.user_id) AS bookmark_counter, bookmark_id
FROM user_bookmarks
LEFT JOIN bookmarks ON user_bookmarks.bookmark_id = bookmarks.id
group by user_bookmarks.bookmark_id) other
WHERE
bookmark.id = other.bookmark_id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.