update answers a1
set a1.FilingDate=(
select date_sub( a2.FilingDate
,Interval 1000 Year) as FilingDate
from answers a2
where Year(a2.FilingDate)>=3000
)
where Year(a1.FilingDate)>=3000
但是它给了我以下错误:
您的SQL语法有错误; 检查对应的手册 您的MySQL服务器版本 在'update附近使用正确的语法 答案a1设置a1.FilingDate =(选择 date_sub(a2.FilingDate,Interval 10'at 第1行
有谁能告诉我这个问题及其解决方案?
答案 0 :(得分:2)
您的子查询可以在A1中每行返回多个值,MySQL不知道它应该从A2中选择哪个值!
我认为您的查询也可以阅读:
update answers a1
set a1.FilingDate=date_sub( a1.FilingDate,Interval 1000 Year)
where Year(a1.FilingDate)>=3000
CAVEAT 在备份时尝试此操作!