我的表中有[id,account_id]列。值是
+------+----------------+
| id | account_id |
+------+----------------+
| 1 | 01-01-02-0007 |
| 2 | 04-05-06-0001 |
| 3 | 03-07-09-0001 |
| 4 | 03-04-04-0001 |
| 5 | 03-04-08-0101 |
| ... |
| 201 | 03-04-08-0111 |
+------+----------------+
我要的是更换每一个的最后一部分account_id
后-
,即0007
,0001
并0001
用等,在这种情况下,相应的id
(但仍然填充0
s到左侧,使其4个字符)。更具体地说,以下是我要实现的目标:
+------+----------------+
| id | account_id |
+------+----------------+
| 1 | 01-01-02-0001 |
| 2 | 04-05-06-0002 |
| 3 | 03-07-09-0003 |
| 4 | 03-04-04-0004 |
| 5 | 03-04-08-0005 |
| .... |
| 201 | 03-04-08-0201 |
+------+----------------+
我本想使用,REPLACE
但不幸的是,这不能应用于我的情况,因为我不仅要更改(对于每个值都保持不变)该部分。我一直在搜索,但无法实现这一目标。我认为,我将不得不使用一些正则表达式并LPAD
以某种方式实现这一目标,但不确定如何做到这一点。
谁能给我一些光?
对于您要显示的固定帐号长度的非常简单的情况,就可以做到;
UPDATE accounts
SET account_id=CONCAT(LEFT(account_id,9), LPAD(id, 4, '0'))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句