Подтвердить что ты не робот

MySQL UPDATE со случайным числом между 1-3

Получил большую таблицу, и я хочу добавить столбец с произвольно выбранным номером для каждой записи. 1, 2 или 3.

Нелегкое время. Любые идеи?

4b9b3361

Ответ 1

Попробуйте следующее:

UPDATE tableName SET columnName = FLOOR( 1 + RAND( ) *3 );

Из документации MySQL для RAND:

Возвращает случайное значение с плавающей запятой v в диапазоне 0 <= v < 1.0.

Таким образом, в вышеприведенном запросе наибольшее значение, которое может быть сгенерировано 1 + RAND()*3, будет 3.999999, которое, когда floored будет давать 3. Наименьшее значение будет иметь место, когда RAND() возвращает 0, и в этом случае это будет дать 1.

Ответ 2

Используйте функцию RAND(). Он возвращает случайное значение с плавающей запятой v в диапазоне 0 <= v < 1.0. Чтобы получить случайное целое число R в диапазоне i <= R < j, используйте выражение FLOOR(i + RAND() * (j − i)). Например, чтобы получить случайное целое число в диапазоне диапазона 1<= R < 3, используйте следующий оператор:

UPDATE tableName
SET ColumnName= FLOOR(1 + rand() * 3);

N.B: RAND() производит случайные значения с плавающей точкой от 0 до 1.

Ответ 3

Сделайте это

UPDATE tableName SET columnName = FLOOR(RAND( ) + RAND( ));