Maison > base de données > tutoriel mysql > le corps du texte

Une brève introduction à la fonction concat dans MySQL et à l'exemple de code pour ajouter des chaînes avant/après les champs MySQL

黄舟
Libérer: 2017-03-29 14:05:25
original
1357 Les gens l'ont consulté

L'éditeur ci-dessous vous apportera une brève discussion sur la fonction concat dans mysql, et mysql ajoute string avant/après le champ. L'éditeur pense que c'est plutôt bien, alors je vais le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur pour jeter un œil

Comment utiliser la fonction concat dans MySQL :

CONCAT(str1,str2,…)

Le résultat renvoyé est la chaîne générée par les paramètres de connexion. Si un paramètre est NULL, la valeur de retour est NULL.

Remarque :

Si tous les arguments sont des chaînes non binaires, le résultat est une chaîne non binaire.

Si la variable self- contient une chaîne binaire, le résultat est une chaîne binaire.

Un paramètre numérique est converti dans son format de chaîne binaire équivalent ; pour éviter cela, utilisez un transtypage de type explicite, par exemple :

SELECT CONCAT(CAST(int_col AS CHAR), char_col)

La fonction concat de MySQL peut connecter une ou plusieurs chaînes, telles que

mysql> select concat('10');
+--------------+
| concat('10') |
+--------------+
| 10 |
+--------------+
1 row in set (0.00 sec)
mysql> select concat('11','22','33');
+------------------------+
| concat('11','22','33') |
+------------------------+
| 112233 |
+------------------------+
1 row in set (0.00 sec)
Copier après la connexion

La fonction concat de MySQL Lors de la concaténation de chaînes, à condition que l'une des eux est NULL, NULL sera renvoyé >
Utilisation :

mysql> select concat('11','22',null);
+------------------------+
| concat('11','22',null) |
+------------------------+
| NULL |
+------------------------+
1 row in set (0.00 sec)
Copier après la connexion

CONCAT_WS() signifie CONCAT With Separator et est une forme spéciale de CONCAT(). Le premier paramètre est le séparateur pour les autres paramètres . La position du délimiteur est placée entre les deux chaînes à concaténer. Le délimiteur peut être une chaîne ou d'autres paramètres.

Remarque :

CONCAT_WS(separator,str1,str2,...)
Copier après la connexion

Si le délimiteur est NULL, le résultat est NULL. La fonction ignore les valeurs NULL après tout argument délimiteur.

Si la connexion est séparée par des virgules

La différence avec la fonction concat dans MySQL est que la fonction concat_ws ne retournera pas en raison d'une valeur NULL lorsque exécuté. NULL

La fonction group_concat dans MySQL

mysql> select concat_ws(',','11','22','33');
+-------------------------------+
| concat_ws(',','11','22','33') |
+-------------------------------+
| 11,22,33 |
+-------------------------------+
1 row in set (0.00 sec)
Copier après la connexion

La syntaxe complète est la suivante :

mysql> select concat_ws(',','11','22',NULL);
+-------------------------------+
| concat_ws(',','11','22',NULL) |
+-------------------------------+
| 11,22 |
+-------------------------------+
1 row in set (0.00 sec)
Copier après la connexion

group_concat ([DISTINCT] Champ à joindre [Champ de tri Order BY ASC/DESC] [Séparateur 'séparateur'])Requête de base

Regrouper par identifiant, imprimer la valeur du champ nom sur une seule ligne, séparée par des virgules (par défaut)

Regrouper par identifiant, imprimer la valeur du nom champ sur une ligne, séparé par un point-virgule

mysql> select * from aa;
+------+------+
| id| name |
+------+------+
|1 | 10|
|1 | 20|
|1 | 20|
|2 | 20|
|3 | 200 |
|3 | 500 |
+------+------+
6 rows in set (0.00 sec)
Copier après la connexion

Regrouper par identifiant, imprimer la valeur du champ de nom redondant sur une seule ligne,

mysql> select id,group_concat(name) from aa group by id;
+------+--------------------+
| id| group_concat(name) |
+------+--------------------+
|1 | 10,20,20|
|2 | 20 |
|3 | 200,500|
+------+--------------------+
3 rows in set (0.00 sec)
Copier après la connexion

Comma séparés

mysql> select id,group_concat(name separator ';') from aa group by id;
+------+----------------------------------+
| id| group_concat(name separator ';') |
+------+----------------------------------+
|1 | 10;20;20 |
|2 | 20|
|3 | 200;500 |
+------+----------------------------------+
3 rows in set (0.00 sec)
Copier après la connexion

Regrouper par identifiant, imprimer la valeur du champ de nom sur une seule ligne, séparée par des virgules, dans l'ordre inverse par nom

La fonction répéter ()

mysql> select id,group_concat(distinct name) from aa group by id;
+------+-----------------------------+
| id| group_concat(distinct name) |
+------+-----------------------------+
|1 | 10,20|
|2 | 20 |
|3 | 200,500 |
+------+-----------------------------+
3 rows in set (0.00 sec)
Copier après la connexion

est utilisée pour copier une chaîne 'ab' représente la chaîne à copier, et 2 représente le nombre de copies.

mysql> select id,group_concat(name order by name desc) from aa group by id;
+------+---------------------------------------+
| id| group_concat(name order by name desc) |
+------+---------------------------------------+
|1 | 20,20,10 |
|2 | 20|
|3 | 500,200|
+------+---------------------------------------+
3 rows in set (0.00 sec)
Copier après la connexion

mysql ajoute une chaîne à la fin d'un champ de la table :

mysql> select repeat('ab',2);
+----------------+
| repeat('ab',2) |
+----------------+
| abab |
+----------------+
1 row in set (0.00 sec)
又如mysql> select repeat('a',2);
+---------------+
| repeat('a',2) |
+---------------+
| aa |
+---------------+
1 row in set (0.00 sec)
Copier après la connexion
mysql ajoute une chaîne au début d'un champ dans le tableau

update table_name set field=CONCAT(field,'',str)
Copier après la connexion

Cette fonction peut vous être d'une grande aide ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!