使用更新子查询选择查询

时间:2013-06-13 21:04:00

标签: php mysql

我正在尝试使用此查询更新表格,

update posts (SELECT id, url from posts order by id DESC LIMIT 500) set url = replace(url, 'domain.com', 'domain.org')

这是我必须每周运行的查询。重要的是仅适用于最新的500个条目,而不是整个表格。

当然上面的查询不起作用,这种查询的正确语法是什么?

1 个答案:

答案 0 :(得分:2)

UPDATE `posts` SET `url` = replace(`url`, 'domain.com', 'domain.org') ORDER BY `id` DESC LIMIT 500;

来自MySQL documentation

  

如果指定了ORDER BY子句,则按顺序更新行   指定的。 LIMIT条款限制了数量   可以更新的行。

另请注意,您无需选择要按其排序的列。