我想更新表格的每一行。
SET DELIMITER ;;
DECLARE i INT DEFAULT 0;
DECLARE n INT DEFAULT 0;
SET i = 0;
SELECT COUNT(*) FROM table1 INTO n;
WHILE i < n DO
UPDATE table1
SET col1 = col1 + col2
WHERE ROW_NUMBER = i;
SET i = i + 1;
END WHILE;;
ROW_NUMBER
以上是我发现的东西。我不知道如何找到元组的行号。
如何使用行号更新WHERE
子句?
SET DELIMITER ;;
CREATE TABLE table1 (
col1 INT,
col2 INT
);;
INSERT INTO table1 VALUES
(5, 2),
(2, 6),
(3, 7);;
+----+----+
|col1|col2|
+----+----+
| 5 | 2 |
| 2 | 6 |
| 3 | 7 |
+----+----+
预期结果将是:
+----+----+
|col1|col2|
+----+----+
| 7 | 2 |
| 8 | 6 |
| 10 | 7 |
+----+----+
答案 0 :(得分:2)
如果您想将col1
的所有值增加col2
,请执行以下操作:
UPDATE table
SET col1 = col1 + col2;
这就是全部。 SQL是一种基于集合的语言。没有理由为这种类型的操作做一个显式循环。