| id | code |subcode |
+----+----------+--------+
| 1 |A001-123 | A001 |
| 2 |A001-123 | D003 |
| 3 |A001-456 | A001 |
| 4 |A001-456 | A001 |
| 5 |A001-456 | D002 |
| 6 |A001-789 | A001 |
+----+----------+--------+
UPDATE test as t1,
(SELECT code,
replace( substring( substring_index( code, '-', 2 ),
length( substring_index( code, '-', 2 -1 ) ) +1 ) ,
'-', '' ) AS ref //split
FROM test
WHERE code IN(
'A001-123', 'A001-456', 'A001-789'
) GROUP BY code
) as t2
SET t1.subcode=
IF(t1.subcode='A001', 'A002', t1.subcode) ,
t1.code=concat("A002-",t2.ref)
WHERE t1.code IN(
'A001-123', 'A001-456', 'A001-789'
) AND t1.code=t2.code
+----+----------+--------+
| id | code |subcode |
+----+----------+--------+
| 1 |A002-123 | A002 |
| 2 |A002-123 | D003 |
| 3 |A002-456 | A002 |
| 4 |A002-456 | A002 |
| 5 |A002-456 | D002 |
| 6 |A002-789 | A002 |
+----+----------+--------+
No comments:
Post a Comment