In this tutorial, we will learn about the MySQL `RAND()`

function. While working with MySQL, you will come across situations in which you would need a random number for certain operations. For this purpose, MySQL provides us with the `RAND()`

function.

The MySQL `RAND()`

function is used to return a random floating-point number between 0 (inclusive) and 1 (exclusive). We can also pass an argument to the function, known as the seed value to produce a repeatable sequence of random numbers. We will see more about `RAND()`

and seed values later but first, let us take a look at the syntax.

Table of Contents

## Syntax of MySQL RAND()

```
RAND(seed);
```

Where ‘seed’ is an optional parameter that if specified, can return a repeatable sequence of random numbers. If ‘seed’ is not mentioned, then a different random number is returned for every execution.

## Examples of MySQL RAND()

Let us look at a basic example of `RAND()`

. Using the `SELECT`

statement and aliases, let us display two random numbers between 0 to 1.

```
SELECT RAND() AS RandomNumber1;
SELECT RAND() AS RandomNumber2;
```

And the output is,

### RAND() Using a Seed Value

Now as you saw in the previous example, we executed `RAND()`

twice and we got a different random number both times. What if you want the same random number again? This is where the ‘seed’ parameter comes into play. Adding a ‘seed’ value makes `RAND()`

repeat the random number again if the succeeding `RAND()`

function is passed the same ‘seed’ value. Let us see this using the below example.

We want 4 random numbers. However, the first random number must be equal to the last random number. We do this using the below query.

```
SELECT RAND(2), RAND(10), RAND(-15), RAND(2);
```

So we write 4 `RAND()`

functions, each one of them with a ‘seed’ value such that the ‘seed’ value of the first `RAND()`

function matches the ‘seed’ value of the last `RAND()`

function. And we get the output as,

As you can see, the first and the last random number are equal because their ‘seed’ value is the same.

### Expressions with MySQL RAND()

We can also use `RAND()`

as a part of an expression. Let us see this using the below examples.

```
SELECT RAND()*10 AS RandomNumber;
SELECT RAND()*100 AS RandomNumber;
```

And the output is,

### MySQL RAND() To Find Random Numbers Between Any Range

`RAND()`

returns random numbers from 0 to 1. However, we can use the `FLOOR()`

function and some mathematical expressions to find random numbers between a given range. Let us find random numbers between 5 and 10 (inclusive). We use the below query.

```
SELECT FLOOR(RAND()*(10-5+1)+5);
```

And the output is,

Let us now find two numbers between 10 and 25 (exclusive). We do this using the below query.

```
SELECT FLOOR(RAND()*(25-10)+10) AS Number_1, FLOOR(RAND()*(25-10)+10) AS Number_2;
```

And the output is,

## MySQL RAND() With Tables

Consider the below ‘Students’ table.

Let us display the ID, first name, last name and the number of assignments written by a student as a random number till 10. We use the below query.

```
SELECT ID, FirstName, LastName, FLOOR(RAND()*10) AS AssignmentsWritten FROM Students;
```

And the output is,

### RAND() With UPDATE

Let us now create a column named `AssignmentsWritten`

in the above Students table using `ALTER`

and `UPDATE`

statements and fill that column with random integer values up to 10. The queries are-

```
ALTER TABLE Students ADD AssignmentsWritten int;
UPDATE Students SET AssignmentsWritten=FLOOR(RAND()*10);
SELECT * FROM Students;
```

And we get the output as,

### Displaying Random Rows

We can also use `RAND()`

to display random rows in a table if we pair it with the `ORDER BY`

clause. Let us also use the `LIMIT`

clause to display two random rows (only ID, FirstName and LastName columns0 from the Students table.

```
SELECT ID, FirstName, LastName FROM Students ORDER BY RAND() LIMIT 2;
```

And we get the output as,

## Conclusion

MySQL `RAND()`

is used to generate random numbers and can also be used to return random rows from a table. I would highly recommend you to check out the below references.

## References

- MySQL Official Documentation on
`RAND().`