У меня есть ряд строк в базе данных, которые я хочу вставить в другую базу данных. Поскольку есть довольно много строк, я хочу использовать конструкцию INSERT .. SELECT ... в mysql. Утверждение, которое я пытаюсь выполнить, выглядит следующим образом:
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 ...?