2

IDの最大数を更新するクエリが必要です...ここに私のコードがあります..

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

エラーは言う:#1093 - You can't specify target table 'wpjb_job' for update in FROM clause

これを実現するにはどうすればよいですか?

4

2 に答える 2

3

が一意のフィールドである場合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)
于 2012-09-24T04:54:53.110 に答える
0

AVDが言うように、このようなテーブルエイリアスを使用してください

  UPDATE jobs
    SET sectors= '12'
    WHERE ID = (select * from (SELECT MAX(ID) FROM jobs) as t)
于 2012-09-24T04:56:59.273 に答える