Strings an ein vorhandenes Feld in MySQL anhängen
Heute werden wir lernen, String-Werte im MySQL-Feld mit den Funktionen CONCAT()
und CONCAT_WS()
zu verketten oder anzuhängen.
Verwenden Sie CONCAT()
und CONCAT_WS()
, um Zeichenfolgen an ein vorhandenes Feld in MySQL anzuhängen
Um mehr über CONCAT()
und CONCAT_WS()
zu erfahren, verwenden wir die folgenden Abfragen, um eine category
-Tabelle mit zwei Feldern zu erstellen: category_id
und category_code
.
Beispielcode:
CREATE TABLE category(
category_id INT,
category_code VARCHAR(50)
);
INSERT INTO category (category_id, category_code)
VALUES
(1, 'Windows_1'),
(2, 'Windows_2'),
(3, 'Windows_1');
SELECT * FROM category;
AUSGANG:
+-------------+---------------+
| category_id | category_code |
+-------------+---------------+
| 1 | Windows_1 |
| 2 | Windows_2 |
| 3 | Windows_1 |
+-------------+---------------+
3 rows in set (0.00 sec)
Verwenden Sie CONCAT()
, um Zeichenfolgen an ein vorhandenes Feld in MySQL anzuhängen
Nun verketten wir das Wort standard
mit jedem Wert in der Spalte category_code
, indem wir die Methode CONCAT()
verwenden.
Beispielcode:
UPDATE category SET category_code = CONCAT(category_code, 'standard');
AUSGANG:
+-------------+-------------------+
| category_id | category_code |
+-------------+-------------------+
| 1 | Windows_1standard |
| 2 | Windows_2standard |
| 3 | Windows_1standard |
+-------------+-------------------+
3 rows in set (0.02 sec)
Die Methode CONCAT()
nimmt ein oder mehrere Argumente vom Typ String und verkettet sie zu einem String. Diese Funktion benötigt mindestens einen Parameter; andernfalls würde ein Fehler generiert werden.
Wenn der Ausdruck ein numerischer Wert oder eine nichtbinäre Zeichenfolge ist, gibt die Methode CONCAT()
die binäre Zeichenfolge oder die nichtbinäre Zeichenfolge zurück. Wenn der Ausdruck eine NULL
oder eine binäre Zeichenfolge ist, gibt die CONCAT()
-Methode entsprechend NULL
oder eine binäre Zeichenfolge zurück.
Die obige Ausgabe zeigt, dass das Wort standard
ohne Trennzeichen angehängt wird. Um ein Trennzeichen hinzuzufügen, führen wir die Abfrage folgendermaßen aus.
Beispielcode:
UPDATE category SET category_code = CONCAT(category_code, '_','standard');
AUSGANG:
+-------------+--------------------+
| category_id | category_code |
+-------------+--------------------+
| 1 | Windows_1_standard |
| 2 | Windows_2_standard |
| 3 | Windows_1_standard |
+-------------+--------------------+
3 rows in set (0.00 sec)
Angenommen, wir haben eine Zeichenfolge, die aus 3 Wörtern besteht, die wir mit einem Trennzeichen anhängen möchten, dann werden wir mit der Methode CONCAT()
wie folgt vorgehen.
Beispielcode:
UPDATE category SET
category_code = CONCAT(category_code,'_','standard1','_','standard2','_', 'standard3');
AUSGANG:
+-------------+-----------------------------------------+
| category_id | category_code |
+-------------+-----------------------------------------+
| 1 | Windows_1_standard1_standard2_standard3 |
| 2 | Windows_2_standard1_standard2_standard3 |
| 3 | Windows_1_standard1_standard2_standard3 |
+-------------+-----------------------------------------+
3 rows in set (0.06 sec)
Denken Sie nun an 6 Wörter in einer Zeichenfolge, die Sie anhängen möchten. Der Code wäre nicht mehr sauber. Hier verwenden wir also die Funktion CONCAT_WS()
.
Verwenden Sie CONCAT_WS()
, um Zeichenfolgen an ein vorhandenes Feld in MySQL anzuhängen
Beispielcode:
UPDATE category SET
category_code = CONCAT_WS('_',category_code,'standard1','standard2','standard3');
AUSGANG:
+-------------+-----------------------------------------+
| category_id | category_code |
+-------------+-----------------------------------------+
| 1 | Windows_1_standard1_standard2_standard3 |
| 2 | Windows_2_standard1_standard2_standard3 |
| 3 | Windows_1_standard1_standard2_standard3 |
+-------------+-----------------------------------------+
3 rows in set (0.00 sec)
Wie CONCAT()
akzeptiert auch die Methode CONCAT_WS()
String-Typ-Argumente. Das erste Argument ist das Trennzeichen, und die restlichen sind die Zeichenfolgenwerte, die wir anhängen möchten.
Diese Methode ignoriert den Ausdruck mit einem NULL
-Wert und gibt einen NULL
-Wert zurück, wenn das Trennzeichen NULL
ist.