我有三行数据:
never
我想使用以下查询将MyComponentBase<SBase>
上的tempdate设置为temp_number tempdate
A12345 null
A12345001 '2018-01-01'
A12345002 '2018-01-02'
:
A12345
上面的查询不起作用,我想使用2018-01-02
函数而不是给出任何实际值来更新值。
答案 0 :(得分:1)
您的WHERE
子句有误,您应该仅更新NULL
条记录:
UPDATE table_a1
SET tempdate = (SELECT MAX(tempdate)
FROM table_a1
WHERE temp_number LIKE 'A12345%')
WHERE temp_number = 'A1234' AND tempdate IS NULL;
答案 1 :(得分:0)
您可以在子查询上使用联接以获取最大值
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