SQL CONCAT()

Dans le langage SQL la fonction CONCAT() permet de concaténer les valeur de plusieurs colonnes pour ne former qu’une seule chaîne de caractère. Cette fonction SQL peut se révéler pratique pour mettre bout-à-bout les valeurs de plusieurs colonnes pour n’en afficher qu’une. C’est donc pratique pour afficher un résultat facile à lire tout en maintenant les données dans plusieurs colonnes pour une bonne maintenance des données.

Syntaxe

Pour concaténer plusieurs chaîne de caractère, il convient d’utiliser une requête SQL avec la syntaxe suivante:

CONCAT( colonne1, colonne2 )

Il est intéressant de noter que la fonction peut prendre plus de 2 paramètres (sauf pour Oracle).

Utiliser CONCAT() dans un SELECT

La syntaxe de la fonction CONCAT() peut être utiliser dans une requête lors de l’affichage de données en utilisant une requête qui suis cette syntaxe:

SELECT id, CONCAT(colonne1, colonne2)
FROM `table`

Utiliser CONCAT() dans un WHERE

Il est également possible d’utiliser cette fonction dans une clause WHERE en prenant par exemple une syntaxe similaire à celle-ci:

SELECT id
FROM `table`
WHERE colonne1 = CONCAT(colonne2, colonne3)

Exemples

Pour le bien de ce tutoriel, imaginons une application utilisant une table utilisateur. Cette table possède au moins 4 champs : un identifiant, le prénom, le nom et la date d’ajout (sous le format DATETIME).

Table utilisateur :

idprenomnomdate_inscription
1BlaiseMarais2013-06-05 00:00:00
2RosetteGuillet2013-06-17 00:00:00
3FerdinandLevy2013-06-18 00:00:00
4SabineLemaire2013-07-09 00:00:00
5DelphineDevos2013-08-27 00:00:00

Concaténer le prénom et le nom

Imaginons que l’ont souhaite afficher proprement le prénom suivi du nom de famille. Pour cela, il est possible d’utiliser la fonction CONCAT() avec la requête SQL suivante:

SELECT id, CONCAT(prenom, ' ', nom) AS affichage_nom, date_inscription
FROM utilisateur

Résultats :

idaffichage_nomdate_inscription
1Blaise Marais2013-06-05 00:00:00
2Rosette Guillet2013-06-17 00:00:00
3Ferdinand Levy2013-06-18 00:00:00
4Sabine Lemaire2013-07-09 00:00:00
5Delphine Devos2013-08-27 00:00:00

Recherche sur le prénom + le nom d’un coup

Imaginons maintenant qu’un administrateur souhaite rechercher un utilisateur en cherchant son prénom suivi de son nom. Une telle recherche permet de trouver plus facilement un membre données plutôt que de chercher séparément le prénom et le nom. Il est donc possible d’utiliser la requête suivante:

SELECT id, prenom, nom, date_inscription
FROM utilisateur
WHERE CONCAT(prenom, ' ', nom) LIKE 'Sabine Lemaire'

Résultat :

[table “105” could not be loaded /]

Recherche en remplaçant un DATE en DATETIME

Prenons maintenant un exemple de recherche sur une date spécifique. La fonction CONCAT() va permettre de rechercher les utilisateurs inscrit à une certaine date. L’exemple est fictif mais illustre bien les possibilités qui sont offertes grâce à cette fonction SQL. La requête SQL suivante peut donc être utilisée:

SELECT id, prenom, nom, date_inscription
FROM utilisateur
WHERE date_inscription = CONCAT('2013-08-27', ' 00:00:00')

Résultat :

idprenomnomdate_inscription
5DelphineDevos2013-08-27 00:00:00
Partager