Mysql 如何为一系列行号更新列?
我需要更新myTable中第5到10行的myColumn列。我想我可以做以下事情,但显然这给了我一个语法错误:Mysql 如何为一系列行号更新列?,mysql,sql,Mysql,Sql,我需要更新myTable中第5到10行的myColumn列。我想我可以做以下事情,但显然这给了我一个语法错误: UPDATE myTable SET myColumn = 'mamal' LIMIT 5,10; 谢谢尝试使用下面的子查询和联接,请将中的联接列替换为实际列 UPDATE myTable mt INNER JOIN (SELECT <column> FROm myTable LIMIT 5,10) t ON t.<column> = mt.<colu
UPDATE myTable SET myColumn = 'mamal' LIMIT 5,10;
谢谢尝试使用下面的子查询和联接,请将中的联接列替换为实际列
UPDATE myTable mt
INNER JOIN (SELECT <column> FROm myTable LIMIT 5,10) t ON t.<column> = mt.<column>
SET mt.myColumn = 'mamal'
SQL表表示无序集。如果您有主键,则可以使用它进行排序
MySQL允许限制,但不允许偏移,因此您可以更新前五行:
UPDATE myTable
SET myColumn = 'mamal'
ORDER BY id
LIMIT 5;
但不是用偏移量
您可以通过加入来解决此问题:
试试这个:
MySQL不支持limit子句中的偏移量,但仅支持SELECT。所以正确的语法是:限制偏移量,行数。在这种情况下,它应该是限制5,5,而不是限制5,10。支票:
您也可以在更新中使用LIMIT,但在这种情况下只能指定行数。支票:
如果没有主键,只需使用任何唯一键即可。
对于为什么需要从这里选择*,这只是一个绕过错误的技巧。您可以根据表的primarykey选择并更新列值 如果要更改行限制,则表示可以更改限制值 在下面的代码中,id只是表的主键
UPDATE myTable SET myColumn='mamal' WHERE id IN ( SELECT id FROM ( SELECT id FROM myTable where id ORDER BY id ASC LIMIT 5,5 ) tmp )
你有主键吗?像一个枚举?
update myTable
set myColumn = 'mamal'
where your_primary_key
in (select * from (select your_primary_key from myTable limit 5,5) as t);
UPDATE myTable SET myColumn='mamal' WHERE id IN ( SELECT id FROM ( SELECT id FROM myTable where id ORDER BY id ASC LIMIT 5,5 ) tmp )