Concaténer deux colonnes dans MySQL

Sweety Rupani 30 janvier 2023
  1. Concaténer des colonnes à l’aide de la fonction CONCAT dans MySQL
  2. Concaténer des colonnes à l’aide de la fonction CONCAT_WS dans MySQL
Concaténer deux colonnes dans MySQL

Cet article vous montrera différentes manières de concaténer les données de deux colonnes dans MySQL. Cette tâche peut facilement être accomplie par programme en sélectionnant des champs dans une table MySQL et en stockant leurs valeurs dans une variable après avoir concaténé leurs valeurs.

Il est possible de simplifier la procédure ci-dessus en concaténant les valeurs lorsque vous sélectionnez des lignes dans la table de base de données.

Prenons maintenant un exemple simple. Si vous avez deux colonnes distinctes dans la base de données en tant que prénom et nom et que vous souhaitez afficher la valeur dans les deux colonnes sous la forme d’un nom complet à chaîne unique, vous pouvez utiliser l’une des deux approches données pour accomplir votre tâche. De même, si une adresse est divisée en plusieurs colonnes dans une base de données et que vous la souhaitez comme une seule adresse, y compris la ville, l’état et le pays dans votre application, la fonction CONCAT serait très utile.

Deux fonctions différentes peuvent être utilisées pour accomplir cette tâche.

  1. Utilisation de la fonction CONCAT
  2. Utilisation de la fonction CONCAT_WS

Les fonctions CONCAT() et CONCAT_WS() concatènent deux chaînes ou plus. Ces deux fonctions diffèrent car la fonction CONCAT_WS() fonctionne avec un séparateur entre les chaînes, alors que la fonction CONCAT() ne permet pas l’utilisation de séparateurs. Il existe une autre différence significative entre ces fonctions en ce que la fonction CONCAT() renvoie la valeur NULL si l’un des arguments est NULL. En revanche, la fonction CONCAT_WS() renvoie la valeur NULL uniquement si le séparateur est NULL.

Le script suivant crée une table student avec quatre colonnes (sid, firstname, lastname et email).

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

Ici, nous insérons des exemples de valeurs de données dans la table des étudiants pour la démonstration.

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');

La requête ci-dessous renvoie toutes les données de la table des étudiants :

SELECT * FROM student order by sid; 

concaténer deux colonnes dans mysql - exemple

Concaténer des colonnes à l’aide de la fonction CONCAT dans MySQL

La fonction CONCAT peut concaténer ou combiner des valeurs de plusieurs colonnes en une seule colonne. La syntaxe de la fonction CONCAT est la suivante :

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

Nous allons maintenant voir comment l’utiliser avec la requête SELECT :

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

La sortie sera :

concaténer deux colonnes dans mysql - en utilisant concat

Remarque : la table d’origine n’est pas mise à jour. Une requête select peut être utilisée pour afficher le contenu sur l’invite.

Concaténer des colonnes à l’aide de la fonction CONCAT_WS dans MySQL

La fonction CONCAT_WS peut également concaténer ou combiner des valeurs de plusieurs colonnes en une seule colonne. Il a une fonctionnalité supplémentaire pour ajouter des séparateurs avec des valeurs de colonne ou des chaînes. Ce séparateur peut être une virgule (,), un trait d’union (-), un trait de soulignement (_) ou toute chaîne ou motif statique comme (***), etc. La syntaxe d’une fonction CONCAT_WS est la suivante :

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

Nous allons maintenant voir comment l’utiliser avec la requête SELECT :

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

La sortie sera :

concaténer deux colonnes dans mysql - en utilisant concat_ws