【问题标题】:Update multiples rows with different ID at the same time同时更新具有不同ID的多行
【发布时间】:2019-06-03 17:14:49
【问题描述】:

有可能做这样的事情吗?

update table set field ='text' where ID=1 and ID=3 and ID=5

我执行了它,但没有更新任何行。

【问题讨论】:

  • AND 使得它希望所有行同时具有所有这些值,这显然是不可能的。使用 OR,或者使用 IN 子句(这只是许多 OR 的简写)。您希望 ID 是“其中任何一个”而不是“同时所有这些”。不要忘记 SQL 会单独评估每一行并将整个 Where 子句依次应用于每一行。当您编写查询时,请记住这一点,并考虑代码将如何影响单个行

标签: mysql sql database mariadb


【解决方案1】:

如果你想从 sql 中传递一些数据的集合,你可以使用 IN 关键字

update table set field ='text' where ID in (1, 2,3,4,5,6,7);

【讨论】:

    【解决方案2】:

    您需要IN 而不是AND

    update table set field ='text' where ID IN (1, 3, 5)
    

    【讨论】:

    • 太棒了!就是这个!
    【解决方案3】:

    您可以在 WHERE 之后使用 IN,如下所示,

    update table set field ='text' where ID in (1, 3, 5)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-24
      • 1970-01-01
      • 2013-09-29
      • 1970-01-01
      • 1970-01-01
      • 2017-02-14
      • 2021-11-29
      相关资源
      最近更新 更多