MySQL CONCAT Function
Summary: in this tutorial, you will learn various ways to concatenate two or more strings together by using the MySQL CONCAT and CONCAT_WS functions.
To concatenate two or more quoted string values, you place the string next to each other as the following syntax:
SELECT 'MySQL ' 'String ' 'Concatenation';
Code language: SQL (Structured Query Language) (sql)

MySQL string concatenation is cleaner in comparison with other database management systems. For example, if you use PostgreSQL or Oracle, you have to use the string concatenation operator ||. In Microsoft SQL server, you use the addition arithmetic operator (+) to concatenate string values.
Besides using spaces for string concatenation, MySQL provides two other functions that concatenate string values: CONCAT
and CONCAT_WS
.
MySQL CONCAT function
The MySQL CONCAT
function takes one or more string arguments and concatenates them into a single string. The CONCAT
function requires a minimum of one parameter otherwise it raises an error.
The following illustrates the syntax of the CONCAT
function.
CONCAT(string1,string2, ... );
Code language: SQL (Structured Query Language) (sql)
The CONCAT
function converts all arguments to the string type before concatenating. If any argument is NULL
, the CONCAT
function returns a NULL
value.
The following statement concatenates two quoted strings: MySQL
and CONCAT
.
SELECT CONCAT('MySQL','CONCAT');
Code language: SQL (Structured Query Language) (sql)

If you add a NULL
value, the CONCAT
function returns a NULL
value as follows:
SELECT CONCAT('MySQL',NULL,'CONCAT');
Code language: SQL (Structured Query Language) (sql)

See the following customers
table in the sample database.

To get the full names of contacts, you use the CONCAT
function to concatenate first name, space, last name as the following statement:
SELECT
concat(contactFirstName,' ',contactLastName) Fullname
FROM
customers;
Code language: SQL (Structured Query Language) (sql)

MySQL CONCAT_WS function: Concatenate strings with a separator
MySQL provides a special form of the CONCAT
function: CONCAT_WS
function. The CONCAT_WS
function concatenates two or more string values with a predefined separator.
The following illustrates the syntax of the CONCAT_WS
function:
CONCAT_WS(seperator,string1,string2, ... );
Code language: SQL (Structured Query Language) (sql)
The first argument is the separator for other arguments: string1, string2, …
The CONCAT_WS
function adds the separator between string arguments and returns a single string with the separator inserted between string arguments.
The following statement concatenates two string values: John and Doe, and separates these two strings by a comma:
SELECT CONCAT_WS(',','John','Doe');
Code language: SQL (Structured Query Language) (sql)

The CONCAT_WS
function returns NULL
if and only if the first argument, which is the separator, is NULL
. See the following example:
SELECT CONCAT_WS(NULL ,'Jonathan', 'Smith');
Code language: SQL (Structured Query Language) (sql)

Unlike the CONCAT
function, the CONCAT_WS
function skips NULL
values after the separator argument. In other words, it ignores NULL values.
SELECT CONCAT_WS(',','Jonathan', 'Smith',NULL);
Code language: SQL (Structured Query Language) (sql)

The following statement constructs complete addresses using the CONCAT_WS
function:
SELECT
CONCAT_WS(CHAR(13),
CONCAT_WS(' ', contactLastname, contactFirstname),
addressLine1,
addressLine2,
CONCAT_WS(' ', postalCode, city),
country,
CONCAT_WS(CHAR(13), '')) AS Customer_Address
FROM
customers;
Code language: SQL (Structured Query Language) (sql)
Here is the output result:
Customer_Address
---------------------------------------------------
Schmitt Carine
54, rue Royale
44000 Nantes
France
King Jean8489 Strong St.
83030 Las Vegas
USA
…
Code language: SQL (Structured Query Language) (sql)
In this tutorial, you have learned how to use MySQL CONCAT
and CONCAT_WS
functions to concatenate one or more string value into a single string.