【发布时间】:2009-02-12 15:03:43
【问题描述】:
我有一些来自数据库的行,我想插入到另一个数据库中。由于有很多行,我想在 mysql 中使用 INSERT .. SELECT ... 构造。我尝试运行的语句如下:
set @rank := 1; set @currpoints := 0; set @currgroupcount := 0;
SELECT id, @rank := if( @currpoints = points, @rank , @rank + @currgroupcount )
AS rank,
@currgroupcount := if( @currpoints = points, @currgroupcount +1, 1 ) , @currpoints :=
points
FROM characters
ORDER BY points DESC , name
LIMIT 0 , 30
问题是当结果超过两列时,我无法将选定的行插入数据库。有什么方法可以在不将表达式作为列返回的情况下进行这些所需的增量?如果不可能,您是否知道我可以做些什么作为替代方案,并且仍然能够获得使用 INSERT .. SELECT ... 构造所带来的性能提升?
【问题讨论】:
标签: mysql