如果符合条件,我需要更新表格,在我的情况下:(根据标题从帖子组中选择计数(标题)作为标题)> 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;
我在这里做错了什么?提前谢谢。
答案 0 :(得分:4)
查询的问题在于标量子查询中有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
答案 1 :(得分:-4)
在子查询中使用group by,因为您正在使用count函数