Mysql 查询执行被中断,错误#1317

Mysql 查询执行被中断,错误#1317,mysql,Mysql,我有一张桌子,上面有一堆产品(在本例中是书籍)。我的销售点系统会生成一份包含ISBN(唯一产品编号)和永续销售的报告 我基本上需要做一个更新,将一个表中的ISBN与另一个表中的ISBN进行匹配,然后将一个表中的销售额添加到另一个表中 这需要对大约30000种产品进行测试 下面是我正在使用的SQL语句: UPDATE `inventory`,`sales` SET `inventory`.`numbersold` = `sales`.`numbersold` WHERE `invent

我有一张桌子,上面有一堆产品(在本例中是书籍)。我的销售点系统会生成一份包含ISBN(唯一产品编号)和永续销售的报告

我基本上需要做一个更新,将一个表中的ISBN与另一个表中的ISBN进行匹配,然后将一个表中的销售额添加到另一个表中

这需要对大约30000种产品进行测试

下面是我正在使用的SQL语句:

UPDATE `inventory`,`sales` 
   SET `inventory`.`numbersold` = `sales`.`numbersold` 
 WHERE `inventory`.`isbn` = `sales`.`isbn`;
我收到MySQL错误:

#1317 SQLSTATE:70100(ER_查询被中断)查询执行被中断


我正在使用GoDaddy.com提供的phpMyAdmin,尝试在这两个表中使用内部联接

       UPDATE `inventory` 
       INNER JOIN `sales` 
       ON  `inventory`.`isbn` = `sales`.`isbn`
       SET `inventory`.`numbersold` = `sales`.`numbersold` 

我可能来晚了一点,但是。。。看起来查询确实被执行时间限制打断了。可能没有简单的解决方法,但这里有几个想法:

确保对
inventory.isbn
sales.isbn
进行了索引。如果没有,添加索引将显著减少执行时间

如果不起作用,请将查询分解为块并运行几次:

UPDATE `inventory`,`sales` 
  SET `inventory`.`numbersold` = `sales`.`numbersold` 
WHERE `inventory`.`isbn` = `sales`.`isbn`
  AND substring(`inventory`.sales`,1,1) = '1';

子句将搜索限制为从数字1开始的ISBN。对从“0”到“9”的每个数字运行查询。对于ISBN,您可能会发现选择最后一个字符会获得更好的结果。使用
子字符串(
inventory
.sales
,-1)`

更新
inventory
sales
设置
库存
numbersold
=
销售
numbersold
其中
库存
isbn
=
销售
isbn
库存
id
<5000


更新
库存
销售
设置
库存
numbersold
=
销售
numbersold
其中
库存
isbn
=
销售
isbn
库存
>5000
库存
<10000


如果出现错误,您可以尝试将数字减少到1000,例如更新库存、销售。。。对吗?我是指
库存、销售
之间的逗号,我是指您的查询方式与您发布的方式错误。。。它应该是
updateinventory SET inventory.numbersold=sales.numbersold WHERE inventory.isbn=sales.isbn
@Rahul当我运行SQL语句时,我得到了这个错误#1054-WHERE子句中的未知列'sales.isbn'。好吧,我按照你的帖子来写。。。数据库中必须有一个名为
sales
的表。为了帮助您,您需要提供完整的查询以及查询中涉及的表(可能是架构)。该列不是未知的,但它仅在我在UPDATE语句开头执行库存、销售时有效。