我想写这样的查询:
SET @id := 0;
UPDATE table1
SET
field1 = @id + 1,
@id := @id + 1
并收到错误消息:
#1064 - You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use
near '@id := @id + 1' at line 3
如何正确编写此查询?
答案 0 :(得分:2)
您可以这样做,分配和增量合并:
SET @id := 0;
UPDATE table1
SET
field1 = (@id := @id + 1)
编辑:你甚至可以在这样的UPDATE查询中使用ORDER BY
来指定数字的分配顺序。
答案 1 :(得分:0)
你需要的是一个序列。您可以使用this implementation例如:
INSERT INTO seq VALUES('s1',1);
UPDATE table1 SET field1 = seq('s1');
答案 2 :(得分:0)
您只需要将其分为三个语句而不是两个语句。
SET @id := 0;
UPDATE table1
SET field1 = @id + 1;
SET @id := @id + 1;
答案 3 :(得分:0)
请试试这个
declare @Count int
set @Count =0
update table1 set @Count =column1=@Count +1