我有三行数据:
temp_number tempdate
A12345 null
A12345001 '2018-01-01'
A12345002 '2018-01-02'
我想使用此查询将tempdate on
A12345
设置为2018-01-02
:update table_a1 set tempdate = (select max(tempdate) from table_a1 where
substr(temp_number,1,6) = 'A12345')
where temp_number = 'A12345'
上面的查询不起作用,我想使用
max()
函数更新值,而不是给出任何实际值。 最佳答案
您可以对子查询使用联接以获取最大值
update table_a1 m
INNER JOIN (
select max(tempdate) max_date, substr(temp_number,1,6) temp1
from table_a1
where substr(temp_number,1,6) = 'A12345')
group by temp
) t on t.temp1 = m.tempdate
set tempdate = t.max_date
关于mysql - 如何通过在同一列上运行max()更新列?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53630612/