создание случайного числа с помощью MYSQL
Я хотел бы знать, есть ли способ выбрать случайно сгенерированное число от 100 до 500 вместе с запросом select.
например: SELECT name, address, random_number FROM users
мне не нужно хранить это число в БД и использовать его только для отображения цели.
Я пробовал что-то вроде этого, но он не может работать..
SELECT name, address, FLOOR(RAND() * 500) AS random_number FROM users
надеюсь кто-то поможет мне. Спасибо
5 ответов:
Это должно дать то, что вы хотите:
FLOOR(RAND() * 401) + 100
В общем,
FLOOR(RAND() * (<max> - <min> + 1)) + <min>
генерирует число между<min
> и<max>
включительно.обновление
это полное заявление должно работать:
SELECT name, address, FLOOR(RAND() * 401) + 100 AS `random_number` FROM users
как
RAND
производит число 0 документация) нужно использоватьROUND
чтобы убедиться, что вы можете получить верхнюю границу (500 в этом случае) и нижнюю границу (100 в этом случае)таким образом, чтобы произвести диапазон вам нужно:
SELECT name, address, ROUND(100.0 + 400.0 * RAND()) AS random_number FROM users
В дополнение к этому ответу, создать функцию, как
CREATE FUNCTION myrandom( pmin INTEGER, pmax INTEGER ) RETURNS INTEGER(11) DETERMINISTIC NO SQL SQL SECURITY DEFINER BEGIN RETURN floor(pmin+RAND()*(pmax-pmin)); END;
и как
SELECT myrandom(100,300);
это дает вам случайное число от 100 до 300