mysql - 相关子查询更新

标签 mysql sql mysql-error-1093

我已经在我的表中决定我不再想记录开始和结束时间,而是只记录开始时间和持续时间(以分钟为单位)。如何更新我的表,以便我的新列根据现有数据插入值?我在下面的尝试产生了错误:

You can't specify target table 'lesson' for update in FROM clause

UPDATE lesson 
SET duration = 
    (SELECT TIME_TO_SEC(TIMEDIFF(finish_time,start_time))/60 
     FROM lesson AS l 
     WHERE l.id = lesson.id)

最佳答案

您不必这样做,因为您使用同一行中其他列的值更新列,只需:

UPDATE lesson 
SET duration = TIME_TO_SEC(TIMEDIFF(finish_time,start_time))/60 

关于mysql - 相关子查询更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1582052/

相关文章:

mysql - 基于子查询向 MySQL 插入大量行......遇到麻烦

mysql - SQL/Knime - 带 "Group By"的转置表

java - 如何在 java webapp 中的服务器上保存和检索图像

mysql - 在mysql中选择不同的对,以及第三个值的总和

mysql - 如何在 substring_index 中传递多个分隔符

mysql - 如何更新第三行中的列与 MySQL 中第二行中的列相同?

mysql - 终端无法识别 mysqld 和 mysql 命令

mysql - Mariadb 5.5 比 MySQL 5.1 慢

php - 如何从另一个表调用查询

Mysql 抛出一个错误