我遇到了一种情况,我有两列(col1,col2)的表,我添加了布尔列(col3)。现在我必须更新具有不同 col1 和 col2 的第一次出现的行(即)与我们从 group by col1 获得的行相同,其中col3 为 true。
create table my_table( col1 integer, col2 integer, col3 tinyint(1));
insert into my_table(col1,col2) values(1,2);
insert into my_table(col1,col2) values(1,1);
insert into my_table(col1,col2) values(2,1);
insert into my_table(col1,col2) values(2,2);
insert into my_table(col1,col2) values(2,8);
insert into my_table(col1,col2) values(3,2);
insert into my_table(col1,col2) values(3,1);
insert into my_table(col1,col2) values(3,5);
insert into my_table(col1,col2) values(3,6);
insert into my_table(col1,col2) values(4,3);
insert into my_table(col1,col2) values(4,6);
insert into my_table(col1,col2) values(4,5);
insert into my_table(col1,col2) values(4,2);
当我添加新的列表时,col3 null 具有以下值。
COL1 COL2 COL3
1 2 (null)
1 1 (null)
2 1 (null)
2 2 (null)
2 8 (null)
3 1 (null)
3 2 (null)
3 5 (null)
3 6 (null)
4 3 (null)
4 6 (null)
4 5 (null)
4 2 (null)
我想要一个查询来更新我的表,如下所示:
COL1 COL2 COL3
1 2 1
1 1 (null)
2 1 1
2 2 (null)
2 8 (null)
3 1 1
3 2 (null)
3 5 (null)
3 6 (null)
4 3 1
4 6 (null)
4 5 (null)
4 2 (null)
SQLFiddle 架构链接:http ://sqlfiddle.com/#!2/0ddce/1