0

如果我必须更新表中超过 10000 行,并且表包含超过 700000 条记录,并且我们必须更新其主键的行是连续的。更好地获取最大主键然后在sql查询中使用“小于等于”还是我必须在查询中使用?

4

2 回答 2

1

最好的将是使用between

假设您要更新其 entity_id(PK) 范围为 10 和 10000 的表的 column1。

update table set column1=somevalue where id between 10 and 10000

Usingin子句将需要从子查询中获取 id,或者您需要放入大括号

于 2012-12-06T06:56:21.843 回答
0

由于它们是相同的,因此在速度或其他方面确实没有区别。更好用更自然给你。

您可以简单地使用小于或等于

UPDATE table_name SET column_name=value WHERE row_id <= 10000

需要注意的一件事是,如果您对 DATETIME 使用它,则结束日期的匹配将是一天的开始:

<= 6/12/2012 与: <= 6/12/2012 23:59:59 不同(它将与 <= 6/12/2012 00:00:00.000 匹配

于 2012-12-06T07:08:51.390 回答