Skip to main content
Documents
Share
LinkedIn
Facebook
Twitter
Copy
ClausesStatementsKeywordsExpressionsFunctionsIndexesPerformance Optimization

MySQL RAND() Function

The `RAND()` function in MySQL generates a random floating-point number between 0 and 1. It is commonly used for creating random values or selecting random records from a database.

Usage

The `RAND()` function is used when there is a need to introduce randomness, such as shuffling results or generating random IDs. It can be called with or without an optional seed value to produce a deterministic sequence of random numbers.

RAND([seed])

In this syntax, `RAND()` returns a random number. Providing a `[seed]` will generate a repeatable sequence of random numbers, consistent within the same session or context. Note that different MySQL versions and configurations may handle seeds slightly differently.

Examples

1. Generating a Random Number

SELECT RAND();

This example generates a random number between 0 and 1 each time the query is executed, producing different numbers without a seed.

2. Generating a Random Number with a Seed

SELECT RAND(10);

Here, `RAND()` uses the seed value 10, producing the same random number each time within the same session, which is useful for testing purposes.

3. Selecting Random Records

SELECT * 
FROM products 
ORDER BY RAND() 
LIMIT 5;

This query retrieves 5 random rows from the `products` table, using `RAND()` to shuffle the order of the results.

Tips and Best Practices

  • Use seeds for reproducibility. Utilize seed values during testing to get consistent random numbers within the same session.
  • Be cautious with large datasets. Using `ORDER BY RAND()` on large tables can be resource-intensive; consider alternative methods like adding a column with pre-generated random values or using a sampling technique for better performance.
  • Limit random selections. Always use `LIMIT` when selecting random records to avoid excessive data processing.
  • Avoid using RAND() for cryptographic purposes. It is not suitable for secure applications or cryptographic functions. Consider using functions like MySQL's `UUID()` for generating unique identifiers or relying on external libraries for cryptographic randomness.
  • Understand precision. The random number generated by `RAND()` is a floating-point number between 0 and 1 with double precision, which is crucial for applications where precision is important.