【问题标题】:Update multiple rows of one column based on primary key in SQLSQL中根据主键更新一列的多行
【发布时间】:2018-07-19 12:01:44
【问题描述】:

我知道我只想更新我使用此语句的列中的一行

UPDATE Customers
    SET ContactName = 'Alfred Schmidt'
    WHERE CustomerID = 1; 

但是如果我想根据主键值更新多个(例如 5 行)呢?

【问题讨论】:

  • 那么您将使用IN 而不是=
  • 供将来参考:请为您正在使用的 RDBMS 添加标签(sql-server、mysql、oracle、..),因为某些命令是特定于产品的

标签: sql sql-update


【解决方案1】:

IN 运算符允许您在 WHERE 子句中指定多个值。

例子:

就像这样:

SELECT *
FROM Customers
WHERE Customer_id IN (5000, 7000, 8000, 9000);

格式:

expression IN (value1, value2, .... value_n);

在上述情况下:

UPDATE Customers
    SET ContactName = 'Alfred Schmidt'
    WHERE CustomerID IN(12, 156);

【讨论】:

  • 谢谢,结束了如何更新主键位置的不同联系人姓名?例如在 value12 我想要名字 alfred 而在位置 133 我想要名字 nick..
  • 只需将您拥有它们的表名和括号中的名称放在引号中即可。
  • 你能举个例子吗?
  • @OuamerPanagiotis 如果你想用不同的值更新不同的行,最简单的方法是运行多个更新命令,每个值一个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-16
  • 1970-01-01
  • 2016-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多