Kam*_*med 4 mysql sql database ddl
我想更新一个特定的行范围,比如从开始到30结束50.我怎么能实现这一点.
我尝试过:
UPDATE tab
SET col = 'somevalue'
LIMIT 30, 50
Run Code Online (Sandbox Code Playgroud)
但这不起作用.有什么方法可以更新这些行吗?
我得到的错误是:
检查手册...以便在'50'附近使用正确的语法
您的语句不是有效的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)