gpt4 book ai didi

mysql - regexp_replace 在数据库中反转数字字符串并在每个数字之间插入一个句点

转载 作者:行者123 更新时间:2023-11-29 14:24:42 25 4
gpt4 key购买 nike

我有一个数据库,其中一列包含数字。 3 个示例值:

111111155522222225553333333555

我需要反转并在每个数字之间加一个点。即上述每个示例的结果将是:

5.5.5.1.1.1.1.1.1.15.5.5.2.2.2.2.2.2.25.5.5.3.3.3.3.3.3.3

分别。

然后我需要用结果更新另一列。我怎样才能进行这样的替换?

在线正则表达式测试为我提供了我需要的结果:

(\S)(\S)(\S)(\S)(\S)(\S)(\S)(\S)(\S)(\S)/g$10.$9.$8.$7.$6.$5.$4.$3.$2.$1

但我无法让它成功更新数据库。有什么想法可以让它发挥作用吗?

最佳答案

PostgreSQL 的正确答案:

CREATE OR REPLACE FUNCTION reverse_array(ANYARRAY) RETURNS ANYARRAY AS $$
SELECT array( (SELECT $1[i] FROM generate_series( array_upper($1, 1), array_lower($1, 1), -1 ) i ) );
$$ language sql;

# select array_to_string(
reverse_array(
regexp_split_to_array( i, '' )
), '.'
)
from (values ('1111111555'), ('2222222555'), ('3333333555')) x (i);
array_to_string
---------------------
5.5.5.1.1.1.1.1.1.1
5.5.5.2.2.2.2.2.2.2
5.5.5.3.3.3.3.3.3.3
(3 rows)

关于mysql - regexp_replace 在数据库中反转数字字符串并在每个数字之间插入一个句点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2027098/

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