V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
KouShuiYu
V2EX  ›  问与答

怎么让数据库中 int array 类型的字段值自增 100? 比如: {1,2,3} => {101, 102, 103}

  •  
  •   KouShuiYu · 2020-12-17 12:03:51 +08:00 · 639 次点击
    这是一个创建于 1253 天前的主题,其中的信息可能已经有所发展或是发生改变。
    第 1 条附言  ·  2020-12-17 18:30:15 +08:00

    用了种比较丑都方式修改的,幸苦数组不太长

    -- select array_upper(adv_ids,1) from deeplinks
    update deeplinks set adv_ids[1] = adv_ids[1] + 100 where array_upper(adv_ids,1) >= 1;
    update deeplinks set adv_ids[2] = adv_ids[2] + 100 where array_upper(adv_ids,1) >= 2;
    update deeplinks set adv_ids[3] = adv_ids[3] + 100 where array_upper(adv_ids,1) >= 3;
    update deeplinks set adv_ids[4] = adv_ids[4] + 100 where array_upper(adv_ids,1) >= 4;
    update deeplinks set adv_ids[5] = adv_ids[5] + 100 where array_upper(adv_ids,1) >= 5;
    update deeplinks set adv_ids[6] = adv_ids[6] + 100 where array_upper(adv_ids,1) >= 6;
    
    2 条回复    2020-12-17 13:34:59 +08:00
    lekai63
        1
    lekai63  
       2020-12-17 12:21:14 +08:00
    我记得 postgres 中是可以对字段自定义步长的
    KouShuiYu
        2
    KouShuiYu  
    OP
       2020-12-17 13:34:59 +08:00
    @lekai63 你理解错了修改现有的数组里的元素值,+=100
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4481 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 05:41 · PVG 13:41 · LAX 22:41 · JFK 01:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.