Skip to main content
Documents
Clauses StatementsKeywordsExpressionsFunctionsIndexesPerformance 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.

SQL Upskilling for Beginners

Gain the SQL skills to interact with and query your data.
Start Learning for Free