É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.
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 |
... | ... |
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 | |
---|---|
Geoni Bakewell | gbakewell@classicmodelcars.com |
Lemuel Marmie | lmarmie @classic modelcars.com |
Lino Uselman | luselman @classicmodelcars.com |
Honey Tunney | htunney@classicmodelcars.com |
... | ... |
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 |
... | ... |
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!