0

我有一个带有 UID 字段、“研究中”字段(取 0 或 1)和文本字段的表。文本字段中有许多重复项。到目前为止,我已经找到了一种只选择文本字段的第一个实例的方法:

select "text.original", min(UID) from tblHashtags group by "text.original" order by min(UID);

然而,我真正想要的是一个单行,它将上面返回的所有记录中的“研究中”字段更新为 1。然后能够反转此选择以将所有其他记录更新为0 也一样。我可能遗漏了一些简单的东西,但不幸的是,我并不经常使用 SQL。

编辑补充:在这方面做了更多的工作,我会很感激能帮助我做这件事,更不用说单线了。到目前为止我能做的最好的是:

update tblHashtags set "instudy"=1 where (select "text.original", min(UID) from tblHashtags group by "text.original" order by min(UID));
Error: only a single result allowed for a SELECT that is part of an expression

任何帮助表示赞赏!

4

1 回答 1

0

删除 text.original 列,这将导致返回单列结果集。您可以在 IN 子句中使用单列结果集。

UPDATE tblHashtags SET "instudy" = 1 WHERE UID IN (
    SELECT UID FROM tblHashtags GROUP BY "text.original" ORDER BY min(UID)
);
于 2013-04-29T23:07:22.590 回答