Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何为一系列行号更新列?_Mysql_Sql - Fatal编程技术网

Mysql 如何为一系列行号更新列?

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

我需要更新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.<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 )