`MySQL`中的`UPDATE`和`LIMIT`

Kam*_*med 4 mysql sql database ddl

我想更新一个特定的行范围,比如从开始到30结束50.我怎么能实现这一点.

我尝试过:

UPDATE tab
SET    col = 'somevalue' 
LIMIT 30, 50
Run Code Online (Sandbox Code Playgroud)

但这不起作用.有什么方法可以更新这些行吗?

我得到的错误是:

检查手册...以便在'50'附近使用正确的语法

Gor*_*off 9

您的语句不是有效的MySQL语法,它没有意义.语法的问题是update语句不支持偏移(参见此处).

逻辑的问题是你没有order by条款.MySQL在处理表时不保证表的顺序.所以"第一"二十行和"下一二十二"行没有区别.

为什么这不符合你的要求呢?

UPDATE tab
  SET    col = 'somevalue' 
  LIMIT 20;
Run Code Online (Sandbox Code Playgroud)

如果您有指定排序的特定列,则可以使用where:

UPDATE tab
  SET    col = 'somevalue' 
  wHERE ID >= 30 and ID < 50;
Run Code Online (Sandbox Code Playgroud)