©SQL :: Manager
HomeProgram InformationTechnical detailsFree downloadDonate for a cup of coffee
myway SQL Manager for MySQL and MariaDB, Download on Uptodown
SQL functionMySQLMariaDB

The CONCAT_WS SQL Function in MySQL and MariaDB - Concatenation of strings with separator

CONCAT_WSSyntax:CONCAT_WS(Separator, Strings ('str1','str2', ...))
Return value:CHAR, BINARY
Function type:String function
Function Description

The CONCAT_WS() function returns a string resulting from concatenating two or more arguments with a separator.

If either argument contains a non-binary string, the result is a string in the argument's character set.

If arguments contain different character sets, the result is returned in the "larger" character set.

Example: CONCAT_WS('Sep',Latin1, UTF8) = UTF8.

If all arguments contain binary strings, the result is a binary string.

Numeric values ​​in arguments are converted to their equivalent binary string form.

To avoid this, an explicit cast can be used.

Unlike the CONCAT() function, if any of the arguments is NULL, the argument is passed over.

If the value of the separator is NULL, the CONCAT_WS() function returns NULL.


To concatenate strings without a separator, the CONCAT() function can be used.

SQL Examples for the CONCAT_WS function

 1
 2
 3
 4
 5
 6
 7
 8
 9
10

select concat_ws('-SEP-' ,'Test');
select concat_ws('-SEP-' ,'Test''-Test');
select concat_ws('-SEP-' ,'Test''-', 123);
select concat_ws('-SEP-' ,'Test''-'now());

select concat_ws('-SEP-' ,'Test'null'-Test');
select concat_ws('-SEP-' ,'Test'ifnull(null,''), '-Test');
select concat_ws(null ,'Test'null'-Test');

concat_ws('-SEP-' ,'Test')
varchar(4) BINARY
Test
concat_ws('-SEP-' ,'Test', '-Test')
varchar(14) BINARY
Test-SEP--Test
concat_ws('-SEP-' ,'Test', '-', 123)
varchar(18) BINARY
Test-SEP---SEP-123
concat_ws('-SEP-' ,'Test', '-', now())
varchar(34) BINARY
Test-SEP---SEP-2023-03-22 12:24:12
concat_ws('-SEP-' ,'Test', null, '-Test')
varchar(19) BINARY
Test-SEP--Test
concat_ws('-SEP-' ,'Test', ifnull(null,''), '-Test')
varchar(19) BINARY
Test-SEP--SEP--Test
concat_ws(null ,'Test', null, '-Test')
varchar(9) BINARY
NULL

Examples for the output of character sets

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13

select charset(concat_ws('-' ,'Test''-Test'));
select charset(concat_ws('-' ,'Test''-', 123));
select charset(concat_ws('-' ,'Test''-'now()));
select charset(concat_ws('-' ,convert('Test' using utf8), '-Test'));
select charset(concat_ws('-' ,convert('Test' using latin1), '-', 123));
select charset(concat_ws('-' ,`eng`'-', 123)) from menu where id=5;

select concat_ws('-' ,convert('Test' using utf8), convert('-Test' using latin1));
select charset(concat_ws('-' , 123, convert('Test' using utf8), convert('-Test' using latin1)));
select charset(concat_ws('-' , 123, convert('Test' using latin1), convert('-Test' using utf8)));
select charset(concat_ws('-' , 123, 'Test'convert('-Test' using latin1)));

charset(concat_ws('-' ,'Test', '-Test'))
varchar(64) BINARY
binary
charset(concat_ws('-' ,'Test', '-', 123))
varchar(64) BINARY
binary
charset(concat_ws('-' ,'Test', '-', now()))
varchar(64) BINARY
binary
charset(concat_ws('-' ,convert('Test' using utf8), '-Test'))
varchar(64) BINARY
utf8
charset(concat_ws('-' ,convert('Test' using latin1), '-', 123))
varchar(64) BINARY
latin1
charset(concat_ws('-' ,`eng`, '-', 123))
varchar(64) BINARY
latin1
concat_ws('-' ,convert('Test' using utf8), convert('-Test' using latin1))
varchar(10) BINARY
Test--Test
charset(concat_ws('-' , 123, convert('Test' using utf8), convert('-Test' using latin1)))
varchar(64) BINARY
utf8
charset(concat_ws('-' , 123, convert('Test' using latin1), convert('-Test' using utf8)))
varchar(64) BINARY
utf8
charset(concat_ws('-' , 123, 'Test', convert('-Test' using latin1)))
varchar(64) BINARY
latin1
The examples were created with the MyWAY SQL manager: Download

How to use the CONCAT_WS() function in MySQL and MariaDB databases

The CONCAT_WS() function is used to concatenate multiple strings with a specified delimiter. It stands for Concatenate With Separator. The function takes a delimiter string followed by two or more strings and returns a single string that is the result of concatenating the input strings with the specified delimiters. Any number of strings can be concatenated by providing them as separate arguments to the function.

The CONCAT_WS() function in MySQL and MariaDB is useful when concatenating strings with a specific delimiter should, for example, when creating comma-separated lists or when creating formatted output.
COLLATIONCOMPRESSCONCATCONCAT_WSCONNECTION_IDCONVCONVERT

Further MySQL und MariaDB SQL String functions

CHARCHAR(Character code, [, Charset])
More about CHAR Function

CHRCHR(Character code)
More about CHR Function

CONCATCONCAT(Strings ('str1','str2', ...))
More about CONCAT Function

ELTELT(Index, Strings ('str1','str2', ...))
More about ELT Function

EXPORT_SETEXPORT_SET(Bits, On, Off [, Separator] [, Number of bits])
More about EXPORT_SET Function

EXTRACTVALUEEXTRACTVALUE(XML, XPath)

FIELDFIELD(Search string, Strings ('str1','str2', ...))
More about FIELD Function

FORMATFORMAT(Number, Decimals [, Region])
More about FORMAT Function

INSERTINSERT(String, Position, Length, String to insert)
More about INSERT Function

LCASELCASE(String)
More about LCASE Function

LEFTLEFT(String, Length)
More about LEFT Function

LOAD_FILELOAD_FILE(File name)

LOWERLOWER(String)
More about LOWER Function

LPADLPAD(String, Length, String to append)
More about LPAD Function

LPAD_ORACLELPAD_ORACLE(String, Length, String to append)
More about LPAD_ORACLE Function

LTRIMLTRIM(String)
More about LTRIM Function

MAKE_SETMAKE_SET(Bits, Strings ('str1','str2', ...))
More about MAKE_SET Function

MIDMID(String, Position [, Length])
More about MID Function

QUOTEQUOTE(String)
More about QUOTE Function

REPEATREPEAT(String, Number)
More about REPEAT Function

REPLACEREPLACE(String, Search, Replace)
More about REPLACE Function

REVERSEREVERSE(String)
More about REVERSE Function

RIGHTRIGHT(String, Length)
More about RIGHT Function

RPADRPAD(String, Length, String to append)
More about RPAD Function

RPAD_ORACLERPAD_ORACLE(String, Length, String to append)
More about RPAD_ORACLE Function

RTRIMRTRIM(String)
More about RTRIM Function

SOUNDEXSOUNDEX(String)
More about SOUNDEX Function

SPACESPACE(Number)
More about SPACE Function

SUBSTRSUBSTR(String, Position, Length)
More about SUBSTR Function

SUBSTRINGSUBSTRING(String, Position, Length)
More about SUBSTRING Function

SUBSTRING_INDEXSUBSTRING_INDEX(String, Delimiter, Number)
More about SUBSTRING_INDEX Function

TRIMTRIM([Type] [, Delete character], , String)
More about TRIM Function

TRIM_ORACLETRIM_ORACLE([Type] [, Delete character], , String)
More about TRIM_ORACLE Function

UCASEUCASE(String)
More about UCASE Function

UPPERUPPER(String)
More about UPPER Function

WEIGHT_STRINGWEIGHT_STRING(String [AS Format] [LEVEL Level] [Sorting])
More about WEIGHT_STRING Function

ASCIIASCII(String)
More about ASCII Function

BIT_LENGTHBIT_LENGTH(String)
More about BIT_LENGTH Function

CHAR_LENGTHCHAR_LENGTH(String)
More about CHAR_LENGTH Function

CHARACTER_LENGTHCHARACTER_LENGTH(String)
More about CHARACTER_LENGTH Function

FIND_IN_SETFIND_IN_SET(Search string, Set of values)
More about FIND_IN_SET Function

INSTRINSTR(String, Search string)
More about INSTR Function

LENGTHLENGTH(String)
More about LENGTH Function

LENGTHBLENGTHB(String)
More about LENGTHB Function

LOCATELOCATE(Search string, String [, Position])
More about LOCATE Function

OCTET_LENGTHOCTET_LENGTH(String)
More about OCTET_LENGTH Function

ORDORD(String)
More about ORD Function

POSITIONPOSITION(Search string IN String)
More about POSITION Function

Numeric functionsString functionsRegular ExpressionsDate and Time functions
Comparison functionsEncryption & CompressionConversion functionsNULL functions
Aggregate functionsWindow functionsJSON functionsGeometric functions
Sequence functionsInformation functionsDynamic ColumnsMiscellaneous functions
More information about the CONCAT_WS SQL function: mysql.com and mariadb.com and w3schools.com
Updated: 2023-09-17ImprintContactTerms & conditionsPrivacy & CookiesUpdatesSitemapFacebookLinkedinTwitterStatistics©2020-2024 Heino Cunze-Fischer