Maison  >  Article  >  base de données  >  épissage de requêtes MySQL

épissage de requêtes MySQL

王林
王林original
2023-05-20 09:57:384189parcourir

Épissage de requêtes MySQL

Lorsque vous utilisez MySQL pour interroger, vous devez parfois épisser plusieurs champs ou champs dans plusieurs tables. Dans ce cas, vous pouvez utiliser la fonction d'épissage de chaînes fournie par MySQL pour fonctionner. Les fonctions de concaténation de chaînes couramment utilisées incluent CONCAT, CONCAT_WS et GROUP_CONCAT.

  1. Fonction CONCAT

La fonction CONCAT est utilisée pour connecter deux ou plusieurs chaînes ou champs. La syntaxe est la suivante :

CONCAT(string1, string2, ...)

où, chaîne1, chaîne2... représentent les chaînes ou champs à connecter, qui peuvent être des constantes, Noms de colonnes, expressions, fonctions, etc. Par exemple, pour trouver le nom et le poste d'un employé, vous pouvez utiliser l'instruction suivante :

SELECT CONCAT(last_name, ' ', first_name) AS name, job_title
FROM employees

La fonction CONCAT concatène ici nom et prénom et les sépare par des espaces comme nom de champ dans le résultat de la requête. Les résultats en cours sont les suivants :

name job_title
Geoni Bakewell Production Manager
Lemuel Marmie Shipping Manager
Lino Uselman Ingénieur
Honey Tunney Sales Manager
... ...
  1. Fonction CONCAT_WS

La fonction CONCAT_WS est également utilisée pour la concaténation de chaînes, mais contrairement à la fonction CONCAT, elle peut spécifier un délimiteur , la syntaxe est la suivante :

CONCAT_WS(separator, string1, string2, ...)

Parmi eux, le séparateur représente le séparateur, qui peut être n'importe quelle chaîne ; chaîne1, chaîne2... représentent les chaînes ou les champs à connecter, et plusieurs chaînes sont séparées par des virgules. Par exemple, pour trouver le nom complet et l'adresse e-mail d'un employé, vous pouvez utiliser l'instruction suivante :

SELECT CONCAT_WS(' ', first_name, last_name) AS full_name, email
FROM employees

La fonction CONCAT_WS utilise ici des espaces comme séparateurs pour concaténer prénom et nom en tant que champ nom_complet dans le résultat de la requête. Les résultats en cours sont les suivants :

full_name email
Geoni Bakewell gbakewell@classicmodelcars.com
Lemuel Marmie lmarmie @classic modelcars.com
Lino Uselman luselman @classicmodelcars.com
Honey Tunney htunney@classicmodelcars.com
... ...
  1. GROUP_CONCAT fonction

GROUP_CONCAT Les fonctions sont utilisées pour combiner plusieurs champs ou plusieurs Un champ dans un enregistrement est fusionné en une chaîne, et la syntaxe est la suivante :

GROUP_CONCAT([DISTINCT] expr [,expr ...]
             [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]]
             [SEPARATOR str_val])

où expr représente la colonne ou l'expression à épisser ; ORDER BY et SEPARATOR représentent respectivement le tri et le séparateur, qui sont facultatifs. A noter que par défaut, la chaîne renvoyée par la fonction GROUP_CONCAT a une limite de longueur, qui peut être modifiée en définissant le paramètre group_concat_max_len.

Par exemple, pour interroger les noms de tous les employés de chaque service et les concaténer dans une chaîne séparée par des virgules, vous pouvez utiliser l'instruction suivante :

SELECT department, GROUP_CONCAT(last_name ORDER BY employee_number ASC SEPARATOR ', ') AS employee_names
FROM employees
GROUP BY department

La fonction GROUP_CONCAT ici trie last_name dans l'ordre du numéro_employé et les trie avec des virgules séparées par des espaces, comme champ nom_employé dans le résultat de la requête. Les résultats en cours sont les suivants :

department employee_names
Admin Murphy, Patterson, Bondur, Ferrante, Firrelli
Customer Service Tseng, Vanauf, Von ^^ ^^^^
Finance Bow, Firrelli, Patterson, Tseng
... ...
  1. Résumé

Dans le processus de requête MySQL, nous avons souvent besoin de interrogez plusieurs champs ou concaténez des champs à partir de plusieurs tables. Lors de l'implémentation de cette fonction, MySQL fournit trois fonctions de concaténation de chaînes : CONCAT, CONCAT_WS et GROUP_CONCAT, qui sont utilisées pour connecter deux ou plusieurs chaînes, connecter plusieurs chaînes et les séparer avec des délimiteurs spécifiés, et combiner plusieurs champs concaténés en une chaîne. L'utilisation de ces fonctions peut grandement faciliter le traitement de nos données et améliorer l'efficacité des requêtes.

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!

Déclaration:
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
Article précédent:Le champ mysql existe-t-il ?Article suivant:Le champ mysql existe-t-il ?