2012-01-08 7 views
1

最後のエントリの私のテーブル "imagedata"のフィールド "filepath"を更新したいのですか?最後のエントリのUPDATEフィールドSQL

UPDATE `imagedata` SET `filepath`='sdsd' WHERE `id` = MAX(imagedata.id); 

どういうわけか私のSYNAXイストは右のそれをしないと言う: enter code hereグループ機能の使用が無効です。

私が間違って何をしますか?

答えて

1

あなたはAUTO_INCREMENTカラムを使用している場合、あなたは1つが機能し

UPDATE `imagedata` SET `filepath`='sdsd' WHERE `id` = LAST_INSERT_ID(); 
+0

これは良いアドバイスだとは思わない。 –

+0

@ypercubeどうして? –

+0

auto_incrementで2つ以上のテーブルがある場合、 'LAST_INSERT_ID()'が返すと思われることはありますか? –

4
UPDATE `imagedata` 
SET `filepath`='sdsd' 
order by id desc limit 1 

別の方法:

UPDATE `imagedata` 
SET `filepath`='sdsd' 
where id = (select * from (select max(id) from imagedata) as t) 
+0

firtsを試みることができます! greate :) 2番目のものも同様に動作します。私はそれが更新された 'imagedata'のようなものだった SET' filepath' = 'sdsdffff' id =(imagedataからmax(id)を選択してください)これは言う: FROM句での更新 – Don