我需要更新,如果條件滿足,在我的情況表:(從標題的帖子組SELECT COUNT(標題)標題)> 1.更新當使用條件滿足的情況下
這是我的查詢不起作用,我不知道該怎麼做。
UPDATE posts SET text= CASE
WHEN (select count(title) as title from posts group by title) > 1 THEN 'Y' ELSE 'N'
END
WHERE id <=8;
我在做什麼錯在這裏?提前致謝。
我需要更新,如果條件滿足,在我的情況表:(從標題的帖子組SELECT COUNT(標題)標題)> 1.更新當使用條件滿足的情況下
這是我的查詢不起作用,我不知道該怎麼做。
UPDATE posts SET text= CASE
WHEN (select count(title) as title from posts group by title) > 1 THEN 'Y' ELSE 'N'
END
WHERE id <=8;
我在做什麼錯在這裏?提前致謝。
您的查詢的問題是您在標量子查詢中有一個group by
。這會導致標量子查詢有多行,這會導致錯誤。我不知道表的佈局,但也許你想使用相關子查詢:
UPDATE posts p
SET text = (CASE WHEN (select count(title) from posts p2 where p.title = p2.title) > 1
THEN 'Y'
ELSE 'N'
END)
WHERE id <= 8;
編輯:
您也可以使用join
表達這個查詢:
UPDATE posts p join
(select title, count(*) as cnt
from posts p
group by title
) pt
on p.title = pt.title
set p.test = (case when cnt > 1 then 'Y' else 'N' end)
where id <= 8
在子查詢使用組中,因爲您正在使用計數功能
他們已經在使用GROUP BY了,實際上對此沒有幫助。他們在特定情況下所需要的是與主要陳述(UPDATE)的相關性。 –
非常感謝。它的作品,現在我明白了這個問題! –
如果戈登爵士給你正確的答案,請注意檢查答案。 – Charlesliam