我在表末尾有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
您的日期需要單引號。現在,這些是數學表達式(9999減去12減去31) – mpen
MySQL喜歡'20130826'或'2013-08-26''或'DATE'2013-08-26''(後者是ANSI標準) ,但是當它看到「2013-08-26」時,它將其視爲數學表達式:2013減去8減去6. –
@EdGibbs:'LIMIT' *應該*用於更新... [spec says](http:/ /dev.mysql.com/doc/refman/5.0/en/update.html)「LIMIT子句對可更新的行數設置了限制。」 – mpen