The MySQL `LEAST()`

function is a built-in function that you can use to find the smallest value from all the arguments you passed into the function.

The syntax of `LEAST()`

function is as shown below:

```
LEAST(argument, argument, ...)
```

To work properly, the `LEAST()`

function must be called with at 2 arguments at the minimum:

```
SELECT LEAST(1, 2);
-- +-------------+
-- | LEAST(1, 2) |
-- +-------------+
-- | 1 |
-- +-------------+
```

Passing less than 2 arguments will cause MySQL to throw an error as shown below:

```
SELECT LEAST(2);
-- ERROR 1582 (42000): Incorrect parameter count
-- in the call to native function 'LEAST'
```

The `LEAST()`

function will compare integer values as integers. If there’s at least a single `FLOAT`

or `DECIMAL`

value passed to the function, then the whole arguments will be compared using the type of that single value.

```
SELECT LEAST(12.5, 5);
-- +----------------+
-- | LEAST(12.5, 5) |
-- +----------------+
-- | 5.0 |
-- +----------------+
SELECT LEAST(10.99, 5);
-- +-----------------+
-- | LEAST(10.99, 5) |
-- +-----------------+
-- | 5.00 |
-- +-----------------+
```

As you can see from the example above, even though `5`

is an integer value, it’s returned with an extra floating point.

Although numerical values are the most intuitive values to pass as arguments to the function, you can also pass `string`

values into the function.

The following example compares the alphabet letters and returns the smallest one:

```
SELECT LEAST('z', 'd', 'c');
-- +----------------------+
-- | LEAST('z', 'd', 'c') |
-- +----------------------+
-- | c |
-- +----------------------+
```

Since the `LEAST()`

function requires at least two arguments, the function can’t be used to find the smallest value from a single table column.

For example, suppose you have a `students`

column with the following data:

```
+----+-------+-------+------+
| id | name | score | age |
+----+-------+-------+------+
| 1 | Jack | 72 | 19 |
| 2 | Susan | 48 | 17 |
| 3 | John | 56 | 19 |
| 4 | Fany | 81 | 18 |
+----+-------+-------+------+
```

You can find the minimum value from the `score`

column like this:

```
SELECT LEAST(score) FROM students;
ERROR 1582 (42000): Incorrect parameter count
in the call to native function 'LEAST'
```

What you can do is compare the value of `score`

and `age`

and return the smallest of the two:

```
SELECT LEAST(score, age) FROM students;
-- +-------------------+
-- | LEAST(score, age) |
-- +-------------------+
-- | 19 |
-- | 17 |
-- | 19 |
-- | 18 |
-- +-------------------+
```

To find the smallest value from a single column, you need to use the `MIN()`

function instead of the `LEAST()`

function.

Learn more: How MySQL `MIN()`

function works

You’ve learned how the `LEAST()`

function works in MySQL. Nice work! 👍