2013-08-27 40 views
0

我在表末尾有360行,我需要將日期從2013-08-26更改爲9999-12-31。我試過這個查詢,但得到了一個語法錯誤。更新表的最後360行mysql

UPDATE xxx_score 
SET xxx_date_to = 9999-12-31 
WHERE xxx_date_to = 2013-08-26 
ORDER BY `xxx_score`.`xxx_id` DESC 
LIMIT 0 , 360 

,但得到

1064 - 你在你的SQL語法錯誤;檢查對應於您的MySQL服務器版本的手冊,以便在第5行的'360'附近使用正確的語法。

任何幫助,請在我出錯的地方。這裏描述http://dev.mysql.com/doc/refman/5.1/en/date-and-time-literals.html

ORDER BY AND LIMIT都行,只要你不JOIN

+1

您的日期需要單引號。現在,這些是數學表達式(9999減去12減去31) – mpen

+1

MySQL喜歡'20130826'或'2013-08-26''或'DATE'2013-08-26''(後者是ANSI標準) ,但是當它看到「2013-08-26」時,它將其視爲數學表達式:2013減去8減去6. –

+0

@EdGibbs:'LIMIT' *應該*用於更新... [spec says](http:/ /dev.mysql.com/doc/refman/5.0/en/update.html)「LIMIT子句對可更新的行數設置了限制。」 – mpen

回答

3

嘗試改變LIMIT 0, 360LIMIT 360
更新後限制後您只能使用行數:source

4

日期應該用引號括起來。