Запрос MySQL для присвоения уникального случайного числа каждой строке
Вопрос
Я хочу присоединить столбец к моей таблице, который будет случайным числом из последовательного списка = количеству строк.
Итак, если бы в моем столе было 999 строк, тогда числа от 1 до 999 будут присвоены случайным и уникальным образом.
Теперь я решил, что могу добавить фиктивный TempRandomColumn=Rand(), отсортировать по нему и последовательно добавлять числа, используя PHP.Но это означает 999 операторов MySQL.
Есть ли способ сделать это с помощью одного оператора MySQL?
Спасибо за любые подсказки.
Решение
SET @r := 0;
UPDATE items2
SET author_id = (@r := @r + 1)
ORDER BY
RAND()
Другие советы
SET @i=1;
SELECT t.*, @i:=@i+1 as RAND_NUM FROM your_table t ORDER BY RAND();
Не связан с StackOverflow