How the FROM_BASE64() Function Works in MySQL

In MySQL, the FROM_BASE64() function decodes a base-64 encoded string and returns the result. More specifically, it takes a string encoded with the base-64 encoded rules used by TO_BASE64() and returns the decoded result as a binary string.

Syntax

The syntax goes like this:

FROM_BASE64(str)

Where str is the base-64 encoded string that you want decoded.

Example 1 – Basic Usage

Here’s an example to demonstrate the basic usage:

SELECT FROM_BASE64('Q2F0');

Result:

+---------------------+
| FROM_BASE64('Q2F0') |
+---------------------+
| Cat                 |
+---------------------+

So in this example, our argument is Q2F0, which is the base-64 encoded string for Cat.

We can get the base-64 encoded string by passing Cat to the TO_BASE64() function:

SELECT TO_BASE64('Cat');

Result:

+------------------+
| TO_BASE64('Cat') |
+------------------+
| Q2F0             |
+------------------+

Example 2 – A Longer String

Here’s an example using a longer string:

SELECT FROM_BASE64('TXkgY2F0IGxpa2VzIHRvIGNoYXNlIGVsZXBoYW50cyE=');

Result:

+-------------------------------------------------------------+
| FROM_BASE64('TXkgY2F0IGxpa2VzIHRvIGNoYXNlIGVsZXBoYW50cyE=') |
+-------------------------------------------------------------+
| My cat likes to chase elephants!                            |
+-------------------------------------------------------------+

Example 3 – Invalid Argument

If the argument is not a valid base-64 string, NULL will be returned:

SELECT FROM_BASE64('Oops!');

Result:

+----------------------+
| FROM_BASE64('Oops!') |
+----------------------+
| NULL                 |
+----------------------+

Example 4 – NULL Argument

You’ll also get NULL if you pass in NULL:

SELECT FROM_BASE64(NULL);

Result:

+-------------------+
| FROM_BASE64(NULL) |
+-------------------+
| NULL              |
+-------------------+

Example 5 – Missing Argument

You’ll get an error if you don’t pass in an argument:

SELECT FROM_BASE64();

Result:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FROM_BASE64'

Example 6 – Too Many Arguments

You’ll also get an error if you pass in too many arguments:

SELECT FROM_BASE64('Q2F0', 'RWxlcGhhbnQ=');

Result:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FROM_BASE64'