2013-08-27 38 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

日期应该用引号括起来。