2013-07-28 3 views
1

Есть 3 колонки в таблице:MySQL UPDATE запрос: добавить столбец таблицы со значениями

id Name Rating 
1 John 0.976 
2 Mark 0.500 
3 Andrew 0.976 
4 Jane 1.000 

Что SQL запрос может быть сделано, чтобы создать новый id_new столбец этой таблицы так id_new фактически является столбец, имеет порядок от Rating?

Таким образом, новая таблица будет:

new_id id Name  Rating 
1  4 Jane  1.000 
2  3 Andrew 0.976 
3  1 John  0.976 
4  2 Mark  0.500 

Вы видите эту таблицу выглядит он был отсортирован по убыв Rating.

Как это сделать, используя запрос mySql?

спасибо.

+0

Вы спрашиваете, как сортировать DESC byRating и показывать ранг каждой строки в результатах? Или как добавить новый столбец? – TuK

+0

Зачем вам это нужно? – Strawberry

ответ

2

Если вы хотите изменить структуру вашей таблицы и добавить новый столбец:

ALTER TABLE `table_name` ADD `new_id` INT(11) NOT NULL FIRST; 

SET @new_id:=0; 
UPDATE 
    table_name 
SET 
    new_id = (@new_id := @new_id + 1) 
ORDER BY 
    rating DESC; 

Если вы не хотите, чтобы изменить структуру и просто вернуть SELECT с новой колонки:

SET @new_id:=0; 
SELECT 
    (@new_id := @new_id + 1) AS new_id, 
    id, 
    name, 
    rating 
FROM 
    table_name 
ORDER BY 
    rating DESC;