Запрос MySQL для назначения уникального случайного числа для каждой строки

Я хочу привязать столбец к моей таблице, который будет случайным числом из последовательного списка = в число строк.

Итак, если моя таблица имела 999 строк, тогда числа от 1 до 999 будут назначаться случайным образом и уникально.

Теперь я решил, что могу добавить фиктивный TempRandomColumn = Rand(), сортировать по нему и последовательно добавлять числа с помощью PHP. Но это означает 999 операторов MySQL.

Есть ли способ сделать это, используя один оператор MySQL?

Спасибо за любые указатели.

Ответ 1

SET @r := 0;
UPDATE  items2
SET     author_id = (@r := @r + 1)
ORDER BY
        RAND()

Ответ 2

SET @i=1;
SELECT t.*, @i:[email protected]+1 as RAND_NUM FROM your_table t ORDER BY RAND();