Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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 更新表格,将每行从最大值增加1_Mysql_Sql_Sql Update_Max - Fatal编程技术网

Mysql 更新表格,将每行从最大值增加1

Mysql 更新表格,将每行从最大值增加1,mysql,sql,sql-update,max,Mysql,Sql,Sql Update,Max,我试图在考虑字段的最大值的同时,将多行order字段增加1 创建表(如果不存在)`jobs` `id`INT11非空自动增量, `名称'VARCHAR128不为空, `订单'INT11不为空默认值0, 主键'id'; 在'jobs'中插入'VALUESJohn、Steven、Marie、Clair、Richard、Rober、Barbara 使现代化 `jobs`AS`j1`, 从作业“j2”中选择最大“订单”作为“最大” 设置`j1`.`order`=`j2`.`max`+1 其中`j1`.`

我试图在考虑字段的最大值的同时,将多行order字段增加1

创建表(如果不存在)`jobs` `id`INT11非空自动增量, `名称'VARCHAR128不为空, `订单'INT11不为空默认值0, 主键'id'; 在'jobs'中插入'VALUESJohn、Steven、Marie、Clair、Richard、Rober、Barbara 使现代化 `jobs`AS`j1`, 从作业“j2”中选择最大“订单”作为“最大” 设置`j1`.`order`=`j2`.`max`+1 其中`j1`.`id`>4 它将Richard、Rober和Barbara的行数设置为1,我希望是1,2,3,如果我再次执行它,我希望它们是4,5,6


我知道,如果列顺序是自动递增/唯一的,那就太完美了,但在这种情况下就不可能了。

如果可以使用用户定义的变量,那么就可以这样做

UPDATE 
    `jobs` AS `j1`
cross join (
select @r:= (SELECT MAX(`order`) AS `max` FROM jobs)
) t
  SET `j1`.`order` = @r:= @r + 1
  WHERE `j1`.`id` > 4

没有必要存储这些信息。你可以随时计算。而要求列顺序只是自找麻烦。