SQL更新语法

时间:2011-08-08 13:32:39

标签: sql sql-update

网络托管公司在周末更改了我的Php Myadmin版本,我用了一年更新代码来更新Mysql中的库存不再有效。

原始代码

update uc_product_stock x set x.stock = (select y.stock from import y where trim(x.SKU) = trim(y.SKU))

现在它会带来以下错误

#1242 - Subquery returns more than 1 row

提前感谢您提供任何帮助。

2 个答案:

答案 0 :(得分:2)

UPDATE x 
    SET x.stock = y.stock 
    FROM uc_product_stock x
        INNER JOIN import y 
            ON TRIM(x.SKU) = TRIM(y.SKU))

答案 1 :(得分:2)

您的子查询返回多个值,而SQL不知道您要将哪一个分配给您的行。

您必须让子查询返回单个值。

选项包括:

  • 使子查询更具体(添加额外的WHERE过滤器,JOIN等)
  • 使用TOP子句仅返回一行 - SELECT TOP 1....