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

StackOverflow https://stackoverflow.com/questions/602952

  •  03-07-2019
  •  | 
  •  

Вопрос

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

Итак, если бы в моем столе было 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();
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top