gpt4 book ai didi

mysql - 用表的 ID 替换字符串值的最后一个字符

转载 作者:搜寻专家 更新时间:2023-10-30 20:27:53 24 4
gpt4 key购买 nike

我的表中有 [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 的最后一部分,即 000700010001 等在这种情况下具有各自的 id(但仍然用 0 填充到左侧以使其成为 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'))

An SQLfiddle to test with .

关于mysql - 用表的 ID 替换字符串值的最后一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22268378/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com