MySQL UPDATE со случайным числом между 1-3
Получил большую таблицу, и я хочу добавить столбец с произвольно выбранным номером для каждой записи. 1, 2 или 3.
Нелегкое время. Любые идеи?
Ответы
Ответ 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( ));