Maison > base de données > tutoriel mysql > MySQL concat() crée des noms de colonnes à utiliser dans les requêtes ?

MySQL concat() crée des noms de colonnes à utiliser dans les requêtes ?

PHPz
Libérer: 2023-09-16 20:09:08
avant
746 Les gens l'ont consulté

MySQL concat() 创建要在查询中使用的列名?

Pour créer des noms de colonnes à utiliser dans les requêtes, vous devez utiliser des variables définies par l'utilisateur via la commande set. La syntaxe est la suivante -

SET @anyVariableName :=
(
   SELECT CONCAT
   (
      "SELECT",
   GROUP_CONCAT(CONCAT(" 1 as ", COLUMN_NAME) SEPARATOR ','), " FROM DUAL")
   FROM INFORMATION_SCHEMA_COLUMNS
   WHERE TABLE_NAME= ‘yourTableName’
);
Copier après la connexion

Utilisez maintenant la commande PREPARE pour préparer l'instruction. La syntaxe est la suivante -

PREPARE anyVariableName from @anyVariableName;
Copier après la connexion

Utilisez la commande EXECUTE pour exécuter l'instruction. La syntaxe est la suivante -

EXECUTE anyVariableName;
Copier après la connexion

Utilisez la commande DEALLOCATE pour libérer l'instruction préparée. La syntaxe est la suivante -

DEALLOCATE PREPARE anyVariableName;
Copier après la connexion

Nous allons maintenant créer une table avec deux colonnes et cette colonne sera utilisée dans la requête de jointure. La requête pour créer la table est la suivante -

mysql> create table ConcatenationWithUserDefinedVariable
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> User_Id int,
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (1.14 sec)
Copier après la connexion

Utilisez la syntaxe ci-dessus pour les noms de colonnes à utiliser dans la requête. La requête est la suivante -

mysql> set @q := (
   -> select concat(
   -> "select",
   -> group_concat(concat(" 1 as ", column_name) separator ','),
   -> "from dual")
   -> from information_schema.columns
   -> where table_name = 'ConcatenationWithUserDefinedVariable');
Query OK, 0 rows affected (0.01 sec)
Copier après la connexion

La préparation de la requête pour les variables définies par l'utilisateur ci-dessus est la suivante -

mysql> prepare stmt from @q;
Query OK, 0 rows affected (0.00 sec)
Statement prepared
Copier après la connexion

Maintenant, exécutez l'instruction préparée ci-dessus. La requête est la suivante -

mysql> execute stmt;
Copier après la connexion

Ce qui suit est le résultat -

+----+---------+
| Id | User_Id |
+----+---------+
|  1 |       1 |
+----+---------+
1 row in set (0.00 sec)
Copier après la connexion

Enfin, vous devez publier la déclaration préparée. La requête est la suivante -

mysql> deallocate prepare stmt;
Query OK, 0 rows affected (0.00 sec)
Copier après la connexion

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!

source:tutorialspoint.com
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