MySQL | CONCAT_WS method
Start your free 7-days trial now!
MySQL's CONCAT_WS(~)
method concatenates input strings using the specified separator.
Parameters
1. separator
| string
The separator to be added between the strings to be concatenated.
2. str1
| string
A string to concatenate with other string inputs.
3. str2
| string
A string to concatenate with other string inputs. Any number of string inputs may be provided.
Return value
A concatenated string with the separator added between the string inputs.
Examples
Consider the following table about some students:
student_id | fname | lname | day_enrolled | age | username |
---|---|---|---|---|---|
1 | Sky | Towner | 2015-12-03 | 17 | stowner1 |
2 | Ben | Davis | 2016-04-20 | 19 | bdavis2 |
3 | Travis | Apple | 2018-08-14 | 18 | tapple3 |
4 | Arthur | David | 2016-04-01 | 16 | adavid4 |
5 | Benjamin | Town | 2014-01-01 | 17 | btown5 |
The above sample table can be created using the code here.
Basic usage
To concatenate fname
and lname
with a '*'
in between:
SELECT CONCAT_WS('*', fname, lname)FROM students;
+------------------------------+| CONCAT_WS('*', fname, lname) |+------------------------------+| Sky*Towner || Ben*Davis || Travis*Apple || Arthur*David || Benjamin*Town |+------------------------------+
To provide an alias for the resulting column using AS:
SELECT CONCAT_WS(' ', fname, lname) AS "Full Name"FROM students;
+---------------+| Full Name |+---------------+| Sky Towner || Ben Davis || Travis Apple || Arthur David || Benjamin Town |+---------------+
Numeric arguments
Numeric arguments are automatically converted to strings:
SELECT CONCAT_WS(' ', fname, 'is', age, 'years old.') AS "Sentence"FROM students;
+---------------------------+| Sentence |+---------------------------+| Sky is 17 years old. || Ben is 19 years old. || Travis is 18 years old. || Arthur is 16 years old. || Benjamin is 17 years old. |+---------------------------+
NULL arguments
NULL
input strings are skipped:
SELECT CONCAT_WS('-', 'Welcome', NULL, 'to', 'SkyTowner!');
+-----------------------------------------------------+| CONCAT_WS('-', 'Welcome', NULL, 'to', 'SkyTowner!') |+-----------------------------------------------------+| Welcome-to-SkyTowner! |+-----------------------------------------------------+
NULL
separator returns NULL
:
SELECT CONCAT_WS(NULL, 'Welcome', 'to', 'SkyTowner!');
+------------------------------------------------+| CONCAT_WS(NULL, 'Welcome', 'to', 'SkyTowner!') |+------------------------------------------------+| NULL |+------------------------------------------------+