通过将列设置为MySql中其他两列的总和来更新表中的每一行

时间:2018-04-22 09:25:01

标签: mysql

说我在mysql中有以下表格:

表:height_storage

|----|--------|--------|--------------|
| id | height | buffer | total_height |
|----|--------|--------|--------------|
| 0  | 120    | 100    |              |
| 1  | 180    | 120    |              |
| ...                                 |
|----|--------|--------|--------------|

我试图找到一种方法来运行单个查询,通过将total_height设置为height + buffer的值来更新表格中的每一行。

在查询运行后它应该看起来像这样

|----|--------|--------|--------------|
| id | height | buffer | total_height |
|----|--------|--------|--------------|
| 0  | 120    | 100    | 220          |
| 1  | 180    | 120    | 300          |
| ...                                 |
|----|--------|--------|--------------|

1 个答案:

答案 0 :(得分:0)

您只需要使用两个元素的总和进行更新:

UPDATE height_storage
set total_height=height+buffer

但是您可能需要在使用查询之前关闭安全模式,因为您没有使用WHERE子句而不使用密钥:

SET SQL_SAFE_UPDATES = 0;
UPDATE height_storage
set total_height=height+buffer