MySQL v.4.0.27 UPDATE + SELECT

时间:2014-06-25 16:14:03

标签: mysql sql

UPDATE product 
INNER JOIN erpproduct on erpproduct.ProductId = product.ProductId
SET
product.ProductTypeId = (SELECT productTypeId FROM productType WHERE producttype.producttypeName = 'MyProductTypeName' LIMIT 1 ),
WHERE erpproduct.ErpProductId = 123123123;

我收到错误:"您的SQL语法出错了。查看与您的MySQL服务器版本相对应的手册,以便在“'选择产品类型..."

附近使用正确的语法

MySQL版本是4.0.27,似乎MySQL不允许Select指定SET值。没有SELECT一切都很好。是这种情况还是我在声明中做错了什么?

1 个答案:

答案 0 :(得分:1)

这个极端旧版本的MySQL不支持子选择。您至少需要MySQL v4.1。

我引用了manual of those old versions的相关部分:

  

对于4.1之前的MySQL版本,有必要解决或   避免使用子查询。在许多情况下,子查询可以   使用连接和其他方法成功重写。见章节   12.2.8.11,“将子查询重写为早期MySQL版本的连接”。