我正在尝试使用此查询更新表,
update posts (SELECT id, url from posts order by id DESC LIMIT 500) set url = replace(url, 'domain.com', 'domain.org')
这是我必须每周运行的查询。重要的是仅适用于最新的 500 个条目,而不是整个表。
当然上面的查询不起作用,这样的查询的正确语法是什么?
UPDATE `posts` SET `url` = replace(`url`, 'domain.com', 'domain.org') ORDER BY `id` DESC LIMIT 500;
从MySQL 文档:
如果指定了 ORDER BY 子句,则按指定的顺序更新行。LIMIT 子句对可以更新的行数进行了限制。
另请注意,您不必选择要按其排序的列。