我想在PhP中执行以下SQL语句。我在下面简化了它。我想知道MySQL修改使其工作。我尝试了一些像给表中的别名,但它不起作用:
update T1 set col1 = 500
where col2 = 12345 and
col3 = (select max(col3) from T1 where col2 = 12345)
我想更新一列具有最大值的记录。整个查询中只涉及一个表。我正在使用PDO,如果这是相关的。
给出的错误是:
#1093 - You can't specify target table 'T1' for update in FROM clause
答案 0 :(得分:1)
改为使用join
:
update T1 join
(select max(col3) as maxcol3
from T1 t11
where col2 = 12345
) tmax
on T1.col3 = tmax.maxcol3 and
T1.col2 = 12345
set T1.col1 = 500;