如果我必须更新表中超过 10000 行,并且表包含超过 700000 条记录,并且我们必须更新其主键的行是连续的。更好地获取最大主键然后在sql查询中使用“小于等于”还是我必须在查询中使用?
问问题
774 次
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 回答