
现在的需求是将model中的字符拆分,找出数字,并更新到v_cpu的字段上,更新的逻辑是
1、先拆分
SELECT ID, string_to_array( fastone_model, '.' ) AS model FROM reserved_instance

2、再打成行的形式
SELECT ID, UNNEST ( string_to_array( fastone_model, '.' ) ) AS model FROM reserved_instance

3、过滤掉字符的行
SELECT
ri.model AS bmodel,
ri.ID AS bid
FROM
( SELECT ID, UNNEST ( string_to_array( fastone_model, '.' ) ) AS model FROM reserved_instance ) ri
WHERE
ri.model ~ '^[^a-z]+$'

4、更新到新的字段
UPDATE reserved_instance
SET v_cpu = b.bmodel :: INT
FROM
(
SELECT
ri.model AS bmodel,
ri.ID AS bid
FROM
( SELECT ID, UNNEST ( string_to_array( fastone_model, '.' ) ) AS model FROM reserved_instance ) ri
WHERE
ri.model ~ '^[^a-z]+$'
) b
WHERE
b.bid = ID
5、查看是否更新成功

该博客介绍了如何使用SQL语句从`fastone_model`字段中拆分字符,过滤出非字母的数字串,并将其更新到`v_cpu`字段。步骤包括使用`string_to_array`进行拆分,`UNNEST`转换为行,正则表达式过滤非字母项,最后通过`UPDATE`语句更新记录。
5204

被折叠的 条评论
为什么被折叠?



