我想通过转换其原先的值来更新同一表中一列的值,但是我想根据其创建日期首先使用前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
有什么语法可以使这项工作正常吗?
嗯。。。我不明白你为什么使用自联接。如果只想删除前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
);
我现在正在测试此代码,看来它仍在运行。该
posts
表中的实际数据约为数百万。@illumillukilluallukalluto。。。杀死代码!该
FROM
子句不应该在查询中。已经杀了它。我应该坚持以前的语法吗?
@illumillukilluallukalluto。。。不,我已修复查询。它不应该有
FROM
子句。这就是本版本的重点。@illumillukilluallukalluto。。。它有一个
FROM
子句现在被删除了。这就是为什么它没有完成。