MySQL更新无法正常工作 - 语法错误1064

时间:2016-01-25 18:05:02

标签: mysql

我有一张包含oldid和oldparid的表。我想更新row.oldpar = otherrow.oldid的行,但我的查询有问题。

UPDATE 01_menu_main SET parid = x.newpar
FROM (SELECT oldid, id as newpar FROM 01_menu_main) x
WHERE x.oldid = 01_menu_main.oldpar

我收到的错误是

enter image description here

有什么我想念的吗?谢谢!

2 个答案:

答案 0 :(得分:1)

您遇到语法错误。查询应该是

addresses = [["123 Street", "New York", "0123", "USA"], ["421 Street", "New York", "0233", "USA"]]
CSV.open(csv_file, "w", force_quotes: true) do |csv|
  csv << [street_address, city, zipcode, state]
  addresses.each do |address|
    csv << address
  end
end

根据上述语法更改查询并告诉我。

<强>更新

UPDATE table SET key=value WHERE condition

检查上面的代码是否有效?您必须使用UPDATE 01_menu_main t1 JOIN 01_menu_main t2 ON t2.oldid = t1.oldpar SET t1.parid = t2.newpar 来完成您的尝试。

答案 1 :(得分:1)

使用连接

update 
    01_menu_main t1
    join 01_menu_main t2 on t2.oldid = t1.oldpar
set
    t1.parid = t2.newpar