我想更新特定范围的行,比如从 30
开始到 50
结束。我怎样才能做到这一点。
我试过:
UPDATE tab
SET col = 'somevalue'
LIMIT 30, 50
但这行不通。有什么方法可以更新这些行吗?
我得到的错误是:
Check the manual ... for the right syntax to use near ' 50'
最佳答案
您的语句不是有效的 MySQL 语法并且它没有意义。语法的问题是 update
语句不支持偏移量(参见 here )。
逻辑上的问题是您没有order by
子句。 MySQL 在处理表时不保证表的顺序。所以“前”二十行和“后”二十行没有区别。
为什么这不符合您的要求?
UPDATE tab
SET col = 'somevalue'
LIMIT 20;
如果您有指定顺序的特定列,您可以使用where
:
UPDATE tab
SET col = 'somevalue'
wHERE ID >= 30 and ID < 50;
关于mysql - MySQL 中的 `UPDATE ... SET ... LIMIT`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23183237/