首页 > 解决方案 > 更新同一表中的特定列并添加限制 - PostgreSQL

问题描述

我想通过转换其以前的值来更新同一表中列的值,但我想首先根据其创建日期使用前 10 个数据对其进行测试。

虽然我收到了这个错误

ERROR:  syntax error at end of input
LINE 6: limit 10

这是我的示例代码:

UPDATE posts p1
SET cooked = (select entity2char(strip_tags(p2.cooked))
FROM posts p2
WHERE p1.id = p2.id
ORDER BY p2.created_at ASC 
LIMIT 10

任何可以使这项工作的语法?

标签: sqldatabasepostgresql

解决方案


嗯。. . 我不明白你为什么使用自加入。如果只想删除前 10 个实体,可以使用:

UPDATE posts p
    SET cooked = entity2char(strip_tags(p.cooked))
    WHERE p.id IN (SELECT p2.id
                   FROM posts p2
                   ORDER BY p2.created_at ASC 
                   LIMIT 10
                  );

推荐阅读