我必须使用PHP的MysqL_query()函数更新MysqL表.因此,我只需要在一个语句中发送以下UPDATE查询:
SET @i = 0;
UPDATE mytable SET id=(@i:=@i+1);
我已经阅读了一些示例,其中可以使用表别名的SELECT语句来完成此操作,例如:
SELECT @rn:=@rn+1 AS rank,t1.* FROM (SELECT * FROM mytable) t1,(SELECT @rn:=0) t2
有没有办法将这些表别名与我需要使用的UPDATE语句一起使用?
编辑:
根据Topher Hunt的回答,我想我可以使用以下方法创建mytable的副本:
CREATE TABLE mytable_copy SELECT @rn:= @ rn 1 AS id,t1.* FROM(SELECT * FROM mytable)t1,(SELECT @rn:= 0)t2
然后DROP mytable和RENAME mytable_copy到mytable.
这个语句是否会创建mytable的精确副本,其中的字段类型和长度与mytable中的字段类型和长度相同?
最佳答案