我必须使用 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 并将 mytable_copy 重命名为 mytable。
此语句是否会创建 mytable 的精确副本,具有与 mytable 中的字段类型和长度相同的字段类型和长度?