我有一张这样的表:
----------------------------------
| id | date1 | date2 | type |
----------------------------------
| 1 | NULL | NULL | A |
| 1 | NULL | NULL | B |
| 1 | NULL | NULL | A |
| 1 | NULL | NULL | A |
| 1 | 2016-08-02 | NULL | C |
| 1 | NULL | NULL | B |
| 2 | NULL | NULL | A |
| 2 | NULL | NULL | A |
| 2 | NULL | NULL | A |
| 2 | NULL | NULL | B |
| 2 | 2016-08-15 | NULL | C |
| 2 | NULL | NULL | B |
----------------------------------
Run Code Online (Sandbox Code Playgroud)
我希望通过这样的单个查询变成:
----------------------------------------
| id | date1 | date2 | type |
----------------------------------------
| 1 | NULL | 2016-08-02 | A |
| 1 | NULL | 2016-08-02 | B |
| 1 | NULL | 2016-08-02 | A |
| 1 | NULL | 2016-08-02 | A |
| 1 | 2016-08-02 | NULL | C |
| 1 | NULL | 2016-08-02 | B |
| 2 | NULL | 2016-08-15 | A |
| 2 | NULL | 2016-08-15 | A |
| 2 | NULL | 2016-08-15 | A |
| 2 | NULL | 2016-08-15 | B |
| 2 | 2016-08-15 | NULL | C |
| 2 | NULL | 2016-08-15 | B |
----------------------------------------
Run Code Online (Sandbox Code Playgroud)
要获取的日期将始终为“类型 C”,要更新的字段将始终与日期和“类型 A”或“类型 B”的 ID 相同
有什么建议吗?
您可以在子选择上使用更新加入
update my_table
inner join ( select id, date1 from my_table where type ='C') t2
on my_table.id = t2.id
set date2 = t2.date1
where type in ('A','B')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3900 次 |
| 最近记录: |