我有三行数据:

temp_number        tempdate
A12345              null
A12345001          '2018-01-01'
A12345002          '2018-01-02'

我想使用此查询将tempdate onA12345设置为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/

10-12 01:07