Mysql 更新sql查询,其中选择max

Mysql 更新sql查询,其中选择max,mysql,sql,Mysql,Sql,我想要一个更新id最大编号的查询。。。这是我的密码 UPDATE `jobs` SET `sectors` = '12' WHERE `id` = (SELECT MAX(`id`) FROM `jobs`) 错误为:1093-不能在FROM子句中为update指定目标表“wpjb_job” 我该怎么做才能做到这一点呢?如果id是唯一字段,那么您可以使用以下查询: UPDATE `jobs` SET `sectors` = '12' ORDER BY `id` DESC LIMIT 1

我想要一个更新id最大编号的查询。。。这是我的密码

UPDATE `jobs` SET `sectors` = '12' WHERE `id` = (SELECT MAX(`id`) FROM `jobs`)
错误为:1093-不能在FROM子句中为update指定目标表“wpjb_job”

我该怎么做才能做到这一点呢?

如果id是唯一字段,那么您可以使用以下查询:

UPDATE `jobs` 
SET `sectors` = '12' 
ORDER BY `id` DESC LIMIT 1
如果不是唯一的,则需要使用临时表:

UPDATE `jobs`
SET `sectors` = '12'
WHERE `id` = (SELECT `id` FROM (SELECT MAX(`id`) AS `id` FROM `jobs`) as temp)

正如AVD所说,使用如下表别名

  UPDATE jobs
    SET sectors= '12'
    WHERE ID = (select * from (SELECT MAX(ID) FROM jobs) as t)