【问题标题】:is there anyway to SQL update multiple element in List without using for loops?是否有 SQL 更新 List 中的多个元素而不使用 for 循环?
【发布时间】:2021-12-27 04:51:52
【问题描述】:

我正在开发我的函数,它运行良好,但我想优化该方法以获得更好的性能,这是我的代码:

for (Foo foo: duplicateElement) {
            String replace = duplicateElement.getName()
                    .replace( split + name + split, split);
            duplicateElement.setName(replace);
            foo.updateFoo(duplicateElement);
        }

上面的代码运行了,但我能以某种方式将 updateFoo SQL 调用从 for 循环中取出并仍然使其工作吗?提前致谢!

【问题讨论】:

    标签: java mysql list loops


    【解决方案1】:

    生成此 IODKU(更新插入)查询:

    INSERT INTO tbl
            (key, col2, col3)
        VALUES
            (11, 22, 33),
            (43, 54, 65),
            ...
        ON DUPLICATE KEY UPDATE
            col2 = VALUES(col2),
            col3 = VALUES(col3) ;
    

    这要求列 keyUNIQUEPRIMARY。它将尝试插入给定的行,但发现它们存在。然后它将切换到更新指定的列。

    MySQL 8.0 需要这种语法:

            col2 = NEW.col2,
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-01
      • 1970-01-01
      • 2011-09-26
      • 1970-01-01
      • 1970-01-01
      • 2018-02-15
      • 2018-07-02
      • 2016-01-26
      相关资源
      最近更新 更多