【问题标题】:Remove for loop from query从查询中删除 for 循环
【发布时间】:2018-03-27 00:33:43
【问题描述】:

假设我有一个像下面这样的简单查询; (这是一个例子,我知道这不是正确的语法,但逻辑保持不变。

for(let i=1; i<len; i++){
    UPDATE table1 
    SET table1.col1 = i 
    WHERE table1.id = arr[i] 
}

我想避免进行 10 或 20 次查询,所以我想知道如何删除 for,也许类似于

UPDATE table1 
SET table1.col1 = ? #<<how to add the increment here.>>
WHERE table1.id IN (arr)

【问题讨论】:

    标签: mysql for-loop sql-update


    【解决方案1】:

    您可以将数组转换为逗号分隔值的String 并在查询中使用它。

    如何将数组转换为此类值的String 取决于您在应用程序中使用的语言,例如:

    • Here's php 中的一个例子
    • Here's 一个如何在 Java 中实现的示例

    【讨论】:

    • 我的问题不是如何在 IN 中包含 arr。我正在尝试将 arr 中的每个元素的 col1 增加 1。
    猜你喜欢
    • 2011-02-03
    • 1970-01-01
    • 2018-05-20
    • 2021-07-04
    • 2019-03-14
    • 2013-06-26
    • 1970-01-01
    • 2016-04-25
    • 1970-01-01
    相关资源
    最近更新 更多