MySQL consulta para atribuir um número aleatório exclusivo para cada linha
Pergunta
Gostaria de anexar uma coluna para minha mesa que será um número aleatório de uma lista sequencial = ao número de linhas.
Assim, se a minha mesa tinha 999 linhas , em seguida, os números 1 a 999 seriam distribuídos aleatoriamente e exclusivamente .
Agora, eu percebi que eu poderia adicionar um manequim TempRandomColumn = Rand (), ordenar por isso e adicionar os números sequencialmente usando PHP. Mas isso significa que 999 declarações MySQL.
Existe uma maneira de fazer isso usando uma única instrução MySQL?
Obrigado por qualquer ponteiros.
Solução
SET @r := 0;
UPDATE items2
SET author_id = (@r := @r + 1)
ORDER BY
RAND()
Outras dicas
SET @i=1;
SELECT t.*, @i:=@i+1 as RAND_NUM FROM your_table t ORDER BY RAND();
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow