Die CONCAT_WS SQL-Funktion in MySQL und MariaDB - Verketten von Zeichenketten mit Separator |
|
| CONCAT_WS | Syntax: | CONCAT_WS(Separator, Zeichenketten ('str1','str2', ...)) | Rückgabe-Wert: | CHAR, BINARY | Funktions-Typ: | Zeichenketten-Funktion | |
| | Die SQL-Funktion CONCAT_WS() gibt eine Zeichenfolge zurück, die sich aus der Verkettung von zwei oder mehr Argumenten mit einem Separator ergibt.
Wenn eines der Argumente eine nicht-binäre Zeichenfolge enthält, ist das Ergebnis eine Zeichenfolge im Zeichensatz des Arguments.
Wenn Argumente verschiedene Zeichensätze enthalten, wird das Ergebnis im "umfangreicheren" Zeichensatz zurückgegeben.
Beispiel: CONCAT_WS('Sep',Latin1, UTF8) = UTF8.
Wenn alle Argumente binäre Zeichenfolgen enthalten, ist das Ergebnis eine binäre Zeichenfolge.
Numerisches Werte in Argumenten werden in ihre äquivalente binäre Zeichenkettenform konvertiert.
Um dieses zu vermeiden, kann eine explizite Typumwandlung verwendet werden.
Wenn eines der Argumente den Wert NULL hat, wird das Argument im Gegensatz zur CONCAT()-Funktion übergangen.
Wenn der Wert des Separators NULL ist, gibt die CONCAT_WS()-Funktion NULL zurück.
Um Zeichenketten ohne einen Seperator zu verketten, kann die CONCAT()-Funktion verwendet werden. | SQL Beispiele für die CONCAT_WS-Funktion |
|
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 |
|
|
| Beispiele zur Ausgabe von Zeichensätzen |
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 |
|
|
| Die Beispiele wurden mit dem MyWAY SQL-Manager erstellt: | Verwendung der CONCAT_WS() Funktion in MySQL und MariaDB-Datenbanken | Die CONCAT_WS()-Funktion wird verwendet, um mehrere Zeichenfolgen mit einem angegebenen Trennzeichen zu verketten. Es steht für Concatenate With Separator. Die Funktion nimmt eine Trennzeichenfolge, gefolgt von zwei oder mehr Zeichenfolgen, und gibt eine einzelne Zeichenfolge zurück, die das Ergebnis der Verkettung der Eingabezeichenfolgen mit den angegebenen Trennzeichen ist. Es können beliebig viele Zeichenfolgen verkettet werden, indem sie als separate Argumente für die Funktion bereitgestellt werden.
Die Funktion CONCAT_WS() in MySQL und MariaDB ist hilfreich, wenn Zeichenfolgen mit einem bestimmten Trennzeichen verkettet werden sollen, zum Beispiel beim Erstellen durch Kommas getrennter Listen oder beim Erstellen formatierter Ausgaben. | | Weitere MySQL und MariaDB SQL Zeichenketten-Funktionen | CHAR | CHAR(Zeichencode, [, Zeichensatz]) | Mehr zur CHAR-Funktion |
| CHR | CHR(Zeichencode) | Mehr zur CHR-Funktion |
| CONCAT | CONCAT(Zeichenketten ('str1','str2', ...)) | Mehr zur CONCAT-Funktion |
| ELT | ELT(Index, Zeichenketten ('str1','str2', ...)) | Mehr zur ELT-Funktion |
| EXPORT_SET | EXPORT_SET(Bits, On, Off [, Separator] [, Anzahl Bits]) | Mehr zur EXPORT_SET-Funktion |
| EXTRACTVALUE | EXTRACTVALUE(XML, XPath) |
| FIELD | FIELD(Suchstring, Zeichenketten ('str1','str2', ...)) | Mehr zur FIELD-Funktion |
| FORMAT | FORMAT(Zahl, Dezimalstellen [, Region]) | Mehr zur FORMAT-Funktion |
| INSERT | INSERT(Zeichenkette, Position, Länge, Einzufügende Zeichenkette) | Mehr zur INSERT-Funktion |
| LCASE | LCASE(Zeichenkette) | Mehr zur LCASE-Funktion |
| LEFT | LEFT(Zeichenkette, Länge) | Mehr zur LEFT-Funktion |
| LOAD_FILE | LOAD_FILE(Datei-Name) |
| LOWER | LOWER(Zeichenkette) | Mehr zur LOWER-Funktion |
| LPAD | LPAD(Zeichenkette, Länge, Anzufügende Zeichenkette) | Mehr zur LPAD-Funktion |
| LPAD_ORACLE | LPAD_ORACLE(Zeichenkette, Länge, Anzufügende Zeichenkette) | Mehr zur LPAD_ORACLE-Funktion |
| LTRIM | LTRIM(Zeichenkette) | Mehr zur LTRIM-Funktion |
| MAKE_SET | MAKE_SET(Bits, Zeichenketten ('str1','str2', ...)) | Mehr zur MAKE_SET-Funktion |
| MID | MID(Zeichenkette, Position [, Länge]) | Mehr zur MID-Funktion |
| QUOTE | QUOTE(Zeichenkette) | Mehr zur QUOTE-Funktion |
| REPEAT | REPEAT(Zeichenkette, Anzahl) | Mehr zur REPEAT-Funktion |
| REPLACE | REPLACE(Zeichenkette, Suchen, Ersetzen) | Mehr zur REPLACE-Funktion |
| REVERSE | REVERSE(Zeichenkette) | Mehr zur REVERSE-Funktion |
| RIGHT | RIGHT(Zeichenkette, Länge) | Mehr zur RIGHT-Funktion |
| RPAD | RPAD(Zeichenkette, Länge, Anzufügende Zeichenkette) | Mehr zur RPAD-Funktion |
| RPAD_ORACLE | RPAD_ORACLE(Zeichenkette, Länge, Anzufügende Zeichenkette) | Mehr zur RPAD_ORACLE-Funktion |
| RTRIM | RTRIM(Zeichenkette) | Mehr zur RTRIM-Funktion |
| SOUNDEX | SOUNDEX(Zeichenkette) | Mehr zur SOUNDEX-Funktion |
| SPACE | SPACE(Anzahl) | Mehr zur SPACE-Funktion |
| SUBSTR | SUBSTR(Zeichenkette, Position, Länge) | Mehr zur SUBSTR-Funktion |
| SUBSTRING | SUBSTRING(Zeichenkette, Position, Länge) | Mehr zur SUBSTRING-Funktion |
| SUBSTRING_INDEX | SUBSTRING_INDEX(Zeichenkette, Delimiter, Anzahl) | Mehr zur SUBSTRING_INDEX-Funktion |
| TRIM | TRIM([Art] [, Löschzeichen], , Zeichenkette) | Mehr zur TRIM-Funktion |
| TRIM_ORACLE | TRIM_ORACLE([Art] [, Löschzeichen], , Zeichenkette) | Mehr zur TRIM_ORACLE-Funktion |
| UCASE | UCASE(Zeichenkette) | Mehr zur UCASE-Funktion |
| UPPER | UPPER(Zeichenkette) | Mehr zur UPPER-Funktion |
| WEIGHT_STRING | WEIGHT_STRING(Zeichenkette [AS Format] [LEVEL Level] [Sortierung]) | Mehr zur WEIGHT_STRING-Funktion |
| ASCII | ASCII(Zeichenkette) | Mehr zur ASCII-Funktion |
| BIT_LENGTH | BIT_LENGTH(Zeichenkette) | Mehr zur BIT_LENGTH-Funktion |
| CHAR_LENGTH | CHAR_LENGTH(Zeichenkette) | Mehr zur CHAR_LENGTH-Funktion |
| CHARACTER_LENGTH | CHARACTER_LENGTH(Zeichenkette) | Mehr zur CHARACTER_LENGTH-Funktion |
| FIND_IN_SET | FIND_IN_SET(Suchstring, Werte-Satz) | Mehr zur FIND_IN_SET-Funktion |
| INSTR | INSTR(Zeichenkette, Suchstring) | Mehr zur INSTR-Funktion |
| LENGTH | LENGTH(Zeichenkette) | Mehr zur LENGTH-Funktion |
| LENGTHB | LENGTHB(Zeichenkette) | Mehr zur LENGTHB-Funktion |
| LOCATE | LOCATE(Suchstring, Zeichenkette [, Position]) | Mehr zur LOCATE-Funktion |
| OCTET_LENGTH | OCTET_LENGTH(Zeichenkette) | Mehr zur OCTET_LENGTH-Funktion |
| ORD | ORD(Zeichenkette) | Mehr zur ORD-Funktion |
| POSITION | POSITION(Suchstring IN Zeichenkette) | Mehr zur POSITION-Funktion |
|
|
| | Weitere Informationen zur SQL-Funktion CONCAT_WS: und und |
|
|
|
|