Verketten zwei Spalten in MySQL

Sweety Rupani 20 Januar 2022
  1. Verketten von Spalten mit der Funktion CONCAT in MySQL
  2. Verketten von Spalten mit der Funktion CONCAT_WS in MySQL
Verketten zwei Spalten in MySQL

Dieser Artikel zeigt Ihnen verschiedene Möglichkeiten, Daten zweier Spalten in MySQL zu verketten. Diese Aufgabe lässt sich leicht programmgesteuert erledigen, indem man Felder aus einer MySQL-Tabelle auswählt und deren Werte nach der Verkettung ihrer Werte in einer Variablen speichert.

Es ist möglich, das obige Verfahren zu vereinfachen, indem Sie die Werte verketten, während Sie Zeilen aus der Datenbanktabelle auswählen.

Nehmen wir nun ein einfaches Beispiel. Wenn Sie zwei separate Spalten in der Datenbank als Vor- und Nachname haben und den Wert in beiden Spalten als einen einzigen vollständigen Namen anzeigen möchten, können Sie einen der beiden angegebenen Ansätze verwenden, um Ihre Aufgabe zu erfüllen. Wenn eine Adresse in einer Datenbank in mehrere Spalten aufgeteilt ist und Sie sie als eine einzige Adresse, einschließlich Stadt, Bundesland und Land, in Ihrer Anwendung haben möchten, ist die Funktion CONCAT sehr nützlich.

Zwei verschiedene Funktionen können verwendet werden, um diese Aufgabe zu erfüllen.

  1. Verwendung der Funktion CONCAT
  2. Verwendung der Funktion CONCAT_WS

Die beiden Funktionen CONCAT() und CONCAT_WS() verketten zwei oder mehr Strings. Diese beiden Funktionen unterscheiden sich dadurch, dass die Funktion CONCAT_WS() mit einem Trennzeichen zwischen Strings arbeitet, während die Funktion CONCAT() die Verwendung von Trennzeichen nicht zulässt. Ein weiterer wesentlicher Unterschied zwischen diesen Funktionen besteht darin, dass die Funktion CONCAT() den Wert NULL zurückgibt, wenn eines der Argumente NULL ist. Im Gegensatz dazu liefert die Funktion CONCAT_WS() den Wert NULL nur zurück, wenn das Trennzeichen NULL ist.

Das folgende Skript erstellt eine Tabelle student mit vier Spalten (sid, firstname, lastname und email).

CREATE TABLE student (sid INT, firstname VARCHAR(20) NOT NULL, lastname VARCHAR(20) NOT NULL, email VARCHAR(55) NOT NULL);

Zur Veranschaulichung fügen wir Beispieldatenwerte in die Tabelle Student ein.

INSERT INTO student 
VALUES (111,'Sim','Marlw','sim.marlw@gmail.com'),
(124,'John','Carl','John.carl@gmail.com'),
(362,'Paul','cohelo','paul.coh@google.com'),
(244,'Lunas','sen','Lonas.sen@max.com');

INSERT INTO student 
VALUES (114,'Jaine','Kora','jaine.kora@abs.com'),
(615,'Roma','Sholy','roma.sh11@yahoo.com'),
(997,'Beaon','shrlon','beatrice.ss22@yahoo.com'),
(332,'Peter','cohelo','peter.coh@google.com');

Die unten angegebene Abfrage gibt alle Daten aus der Schülertabelle zurück:

SELECT * FROM student order by sid; 

Verketten Sie zwei Spalten in mysql - Beispiel

Verketten von Spalten mit der Funktion CONCAT in MySQL

Die Funktion CONCAT kann Werte aus mehreren Spalten zu einer einzigen Spalte verketten oder kombinieren. Die Syntax für die Funktion CONCAT ist wie folgt:

CONCAT(Column 1, column 2,......)

Wir werden nun sehen, wie man dies mit der SELECT-Abfrage verwendet:

SELECT sid, CONCAT(firstname, " ", lastname) AS fullname FROM student;

Die Ausgabe wird sein:

Verketten zwei Spalten in mysql - mit concat

Hinweis: Die ursprüngliche Tabelle wird nicht aktualisiert. Mit einer select-Abfrage kann der Inhalt auf dem Prompt angezeigt werden.

Verketten von Spalten mit der Funktion CONCAT_WS in MySQL

Die Funktion CONCAT_WS kann auch Werte aus mehreren Spalten zu einzelnen Spalten verketten oder kombinieren. Es hat eine zusätzliche Funktion, um Trennzeichen zusammen mit Spaltenwerten oder Zeichenketten hinzuzufügen. Dieses Trennzeichen kann ein Komma (,), ein Bindestrich (-), ein Unterstrich (_) oder eine beliebige statische Zeichenkette oder ein Muster wie (***) usw. sein. Die Syntax für eine Funktion CONCAT_WS ist wie folgt:

CONCAT_WS(SEPARATOR,Column 1, column 2,......)

Wir werden nun sehen, wie man dies mit der SELECT-Abfrage verwendet:

SELECT sid, CONCAT_WS( "_", firstname, lastname,"***" ) AS fullname FROM student;

Die Ausgabe wird sein:

Verketten zwei Spalten in mysql - mit concat_ws