我想知道是否可以从mysql表中选择递增的整数?如果可能的话,我该如何实现呢?
我的情况是,我有一堆数据,我需要做INSERT INTO newtable ... SELECT somefield FROM sometable
。但是,newtable
上有一个名为counter
的字段,我需要以递增的整数形式,例如:
row #1: counter=1
row #2: counter=2
row #3: counter=3
row #4: counter=4
row #5: counter=5
row #6: counter=6
... and so on...
我可以使用简单的PHP脚本来做到这一点,但我想尝试从mysql查询中完成所有操作。所以,你能告诉我是否有可能吗?
答案 0 :(得分:15)
试试这个:
INSERT INTO newTable(someField, counter)
SELECT a.someField, (@rank:=@rank+1) AS counter
FROM sometable a INNER JOIN
(SELECT @rank :=0) b