--测试数据
create table tbl_test(
orderNumber int,
textinput varchar(100),
refid varchar(50)
)insert into tbl_test values
(1,'','123456789'),(2,'','123456789'),
(3,'111','123456789'),
(1,'','1234567890'),(2,'','1234567890'),
(3,'222','1234567890'),
(1,'','12345678900'),(2,'','12345678900'),
(3,'333','12345678900'),
(1,'','123456789000'),(2,'','123456789000'),
(3,'444','123456789000')--现在的结果
+-------------+-----------+--------------+
| orderNumber | textinput | refid |
+-------------+-----------+--------------+
| 1 | | 123456789 |
| 2 | | 123456789 |
| 3 | 111 | 123456789 |
| 1 | | 1234567890 |
| 2 | | 1234567890 |
| 3 | 222 | 1234567890 |
| 1 | | 12345678900 |
| 2 | | 12345678900 |
| 3 | 333 | 12345678900 |
| 1 | | 123456789000 |
| 2 | | 123456789000 |
| 3 | 444 | 123456789000 |
+-------------+-----------+--------------+--想要的结果
+-------------+-----------+--------------+
| orderNumber | textinput | refid |
+-------------+-----------+--------------+
| 1 | 111 | 123456789 |
| 2 | | 123456789 |
| 3 | 111 | 123456789 |
| 1 | 222 | 1234567890 |
| 2 | | 1234567890 |
| 3 | 222 | 1234567890 |
| 1 | 333 | 12345678900 |
| 2 | | 12345678900 |
| 3 | 333 | 12345678900 |
| 1 | 444 | 123456789000 |
| 2 | | 123456789000 |
| 3 | 444 | 123456789000 |
+-------------+-----------+--------------+ 在线等 谢谢
create table tbl_test(
orderNumber int,
textinput varchar(100),
refid varchar(50)
)insert into tbl_test values
(1,'','123456789'),(2,'','123456789'),
(3,'111','123456789'),
(1,'','1234567890'),(2,'','1234567890'),
(3,'222','1234567890'),
(1,'','12345678900'),(2,'','12345678900'),
(3,'333','12345678900'),
(1,'','123456789000'),(2,'','123456789000'),
(3,'444','123456789000')--现在的结果
+-------------+-----------+--------------+
| orderNumber | textinput | refid |
+-------------+-----------+--------------+
| 1 | | 123456789 |
| 2 | | 123456789 |
| 3 | 111 | 123456789 |
| 1 | | 1234567890 |
| 2 | | 1234567890 |
| 3 | 222 | 1234567890 |
| 1 | | 12345678900 |
| 2 | | 12345678900 |
| 3 | 333 | 12345678900 |
| 1 | | 123456789000 |
| 2 | | 123456789000 |
| 3 | 444 | 123456789000 |
+-------------+-----------+--------------+--想要的结果
+-------------+-----------+--------------+
| orderNumber | textinput | refid |
+-------------+-----------+--------------+
| 1 | 111 | 123456789 |
| 2 | | 123456789 |
| 3 | 111 | 123456789 |
| 1 | 222 | 1234567890 |
| 2 | | 1234567890 |
| 3 | 222 | 1234567890 |
| 1 | 333 | 12345678900 |
| 2 | | 12345678900 |
| 3 | 333 | 12345678900 |
| 1 | 444 | 123456789000 |
| 2 | | 123456789000 |
| 3 | 444 | 123456789000 |
+-------------+-----------+--------------+ 在线等 谢谢
+-------------+-----------+--------------+
| orderNumber | textinput | refid |
+-------------+-----------+--------------+
| 1 | | 123456789 |
| 2 | | 123456789 |
| 3 | 111 | 123456789 |
| 1 | | 1234567890 |
| 2 | | 1234567890 |
| 3 | 222 | 1234567890 |
| 1 | | 12345678900 |
| 2 | | 12345678900 |
| 3 | 333 | 12345678900 |
| 1 | | 123456789000 |
| 2 | | 123456789000 |
| 3 | 444 | 123456789000 |
+-------------+-----------+--------------+
12 rows in set (0.00 sec)mysql> update tbl_test a inner join
-> (select refid,max(textinput) as m_textinput from tbl_test group by refid) b
-> on a.refid=b.refid
-> set a.textinput=b.m_textinput
-> where a.orderNumber=1;
Query OK, 4 rows affected (0.06 sec)
Rows matched: 4 Changed: 4 Warnings: 0mysql> select * from tbl_test;
+-------------+-----------+--------------+
| orderNumber | textinput | refid |
+-------------+-----------+--------------+
| 1 | 111 | 123456789 |
| 2 | | 123456789 |
| 3 | 111 | 123456789 |
| 1 | 222 | 1234567890 |
| 2 | | 1234567890 |
| 3 | 222 | 1234567890 |
| 1 | 333 | 12345678900 |
| 2 | | 12345678900 |
| 3 | 333 | 12345678900 |
| 1 | 444 | 123456789000 |
| 2 | | 123456789000 |
| 3 | 444 | 123456789000 |
+-------------+-----------+--------------+
12 rows in set (0.00 sec)mysql>
把orderNumber=3的textinput值根据refid对应添加到orderNumber=1的textinput中
orderNumber的最大值不一定是3
谢谢
on a.refid=b.refid
set a.textinput=b.textinput
where a.orderNumber=1
and b.orderNumber=3;
mysql> update tbl_test a inner join tbl_test b
-> on a.refid=b.refid
-> set a.textinput=b.textinput
-> where a.orderNumber=1
-> and b.orderNumber=3;
Query OK, 0 rows affected (0.06 sec)
Rows matched: 4 Changed: 0 Warnings: 0mysql> select * from tbl_test;
+-------------+-----------+--------------+
| orderNumber | textinput | refid |
+-------------+-----------+--------------+
| 1 | 111 | 123456789 |
| 2 | | 123456789 |
| 3 | 111 | 123456789 |
| 1 | 222 | 1234567890 |
| 2 | | 1234567890 |
| 3 | 222 | 1234567890 |
| 1 | 333 | 12345678900 |
| 2 | | 12345678900 |
| 3 | 333 | 12345678900 |
| 1 | 444 | 123456789000 |
| 2 | | 123456789000 |
| 3 | 444 | 123456789000 |
+-------------+-----------+--------------+
12 rows in set (0.00 sec)mysql>
谢谢