Skip to content

Instantly share code, notes, and snippets.

@anytizer
Created May 14, 2014 05:43
Show Gist options
  • Save anytizer/86296cbed75813981a8f to your computer and use it in GitHub Desktop.
Save anytizer/86296cbed75813981a8f to your computer and use it in GitHub Desktop.
Generate random numbers in MySQL and check for randomness for non-repeating behaviour.
CREATE TABLE `random_numbers` (
`random_number` VARCHAR(20) NOT NULL COMMENT 'Random Number',
PRIMARY KEY (`random_number`),
KEY `random_number_key` (`random_number`)
);
SELECT LENGTH(RAND()); # Length varies
DROP PROCEDURE IF EXISTS p_generate_random_numbers;
DELIMITER $$
CREATE PROCEDURE p_generate_random_numbers()
BEGIN
DECLARE i INT DEFAULT 0;
insert_loop: LOOP
INSERT INTO random_numbers(`random_number`) VALUES (RAND());
SET i = i+1;
IF i > 5000 THEN
LEAVE insert_loop;
END IF;
END LOOP insert_loop;
END $$
CALL p_generate_random_numbers();
SELECT COUNT(random_number) FROM random_numbers;
SELECT random_number, COUNT(random_number) FROM random_numbers GROUP BY random_number;
# Wow, what a random number! No data here.
SELECT
random_number,
COUNT(random_number) repeatetions
FROM random_numbers
GROUP BY random_number
HAVING repeatetions > 1;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment