仅在sql中更改时更新值

仅在sql中更改时更新值,sql,postgresql,Sql,Postgresql,我有一个包含80000-90000条记录的表,其中有一个id字段和一个相关性得分字段。 有一个python程序计算每个id的相关性分数。我只想在python程序计算的相关性分数与数据库中的分数不同时更新数据库中的记录。 我使用的数据库是postgres 比如说- 初始数据库状态为 Id-关联性评分 1 - 23 2 - 12 3 - 14 假设python程序为id=2计算的新相关性分数为15,id=1和id=3的分数分别计算为23和14(与之前相同) 我只想为id=2编写

我有一个包含80000-90000条记录的表,其中有一个id字段和一个相关性得分字段。 有一个python程序计算每个id的相关性分数。我只想在python程序计算的相关性分数与数据库中的分数不同时更新数据库中的记录。 我使用的数据库是postgres

比如说- 初始数据库状态为 Id-关联性评分 1 - 23 2 - 12 3 - 14 假设python程序为id=2计算的新相关性分数为15,id=1和id=3的分数分别计算为23和14(与之前相同) 我只想为id=2编写更新查询,因此新的数据库状态为 Id-关联性评分 1 - 23 2 - 15
3-14

假设表格名为
分数
,字段名为
id
相关性
,您可以这样更新一行:

UPDATE scores
SET relevance = <new value>
WHERE id = 42
  AND relevance <> <new value>;
更新分数
设置相关性=
其中id=42
和相关性;

只有当值发生更改时,才会更新行。

这有点不清楚。你能详细解释一下吗?仅当值已更改时更新表会遇到哪些问题?到目前为止,您的
UPDATE
语句看起来如何?该表已经有每个id的相关性分数。在其他一些程序中,我正在计算每个id的相关性分数。仅当计算的新分数与数据库中的分数不同时,我才想更新数据库中的分数。请回答您的问题并添加一些和预期的分数基于该数据的输出。请(您的问题-请勿在评论中发布代码或附加信息)