问题描述: 无法在FROM子句中指定用于更新的目标表- Mysql 5.7.10 - derived_merge不工作
回答: 在MySQL 5.7.10版本中,无法在FROM子句中指定用于更新的目标表,这是由于MySQL的语法限制所导致的。在此版本中,derived_merge优化器不起作用,因此无法使用这种方式进行更新操作。
解决方法: 要解决这个问题,可以使用子查询来实现更新操作。可以将需要更新的数据查询出来,然后将查询结果作为子查询,再进行更新操作。
示例代码如下:
UPDATE table_name
SET column_name = new_value
WHERE primary_key_column IN (SELECT primary_key_column FROM (SELECT * FROM table_name) AS subquery);
其中,table_name是需要更新的表名,column_name是需要更新的列名,new_value是新的值,primary_key_column是主键列名。
应用场景: 这种情况通常发生在需要更新的目标表与子查询中的表有关联关系时。通过使用子查询来更新数据,可以绕过MySQL 5.7.10版本中的语法限制,实现更新操作。
推荐的腾讯云相关产品: 腾讯云提供了多种云计算产品,可以满足各种需求。以下是一些相关产品的介绍:
以上是一些腾讯云的相关产品,可以根据具体需求选择合适的产品来解决问题。
领取专属 10元无门槛券
手把手带您无忧上云