Heim > Datenbank > MySQL-Tutorial > Hauptteil

MySQL concat() erstellt Spaltennamen zur Verwendung in Abfragen?

PHPz
Freigeben: 2023-09-16 20:09:08
nach vorne
730 Leute haben es durchsucht

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

Um Spaltennamen für die Verwendung in Abfragen zu erstellen, müssen Sie benutzerdefinierte Variablen über den Set-Befehl verwenden. Die Syntax lautet wie folgt: -

SET @anyVariableName :=
(
   SELECT CONCAT
   (
      "SELECT",
   GROUP_CONCAT(CONCAT(" 1 as ", COLUMN_NAME) SEPARATOR ','), " FROM DUAL")
   FROM INFORMATION_SCHEMA_COLUMNS
   WHERE TABLE_NAME= ‘yourTableName’
);
Nach dem Login kopieren

Verwenden Sie nun den PREPARE-Befehl, um die Anweisung vorzubereiten. Die Syntax lautet wie folgt:

PREPARE anyVariableName from @anyVariableName;
Nach dem Login kopieren

Verwenden Sie den Befehl EXECUTE, um die Anweisung auszuführen. Die Syntax lautet wie folgt:

EXECUTE anyVariableName;
Nach dem Login kopieren

Verwenden Sie den Befehl DEALLOCATE, um die Zuordnung der vorbereiteten Anweisung freizugeben. Die Syntax lautet wie folgt:

DEALLOCATE PREPARE anyVariableName;
Nach dem Login kopieren

Wir erstellen nun eine Tabelle mit zwei Spalten und diese Spalte wird in der Join-Abfrage verwendet. Die Abfrage zum Erstellen der Tabelle lautet wie folgt:

mysql> create table ConcatenationWithUserDefinedVariable
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> User_Id int,
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (1.14 sec)
Nach dem Login kopieren

Verwenden Sie die obige Syntax für die Spaltennamen, die in der Abfrage verwendet werden sollen. Die Abfrage lautet wie folgt: -

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)
Nach dem Login kopieren

Die Vorbereitung der Abfrage für die oben genannten benutzerdefinierten Variablen lautet wie folgt: -

mysql> prepare stmt from @q;
Query OK, 0 rows affected (0.00 sec)
Statement prepared
Nach dem Login kopieren

Führen Sie nun die oben vorbereitete Anweisung aus. Die Abfrage lautet wie folgt:

mysql> execute stmt;
Nach dem Login kopieren

Das Folgende ist die Ausgabe:

+----+---------+
| Id | User_Id |
+----+---------+
|  1 |       1 |
+----+---------+
1 row in set (0.00 sec)
Nach dem Login kopieren

Schließlich müssen Sie die vorbereitete Anweisung freigeben. Die Abfrage lautet wie folgt:

mysql> deallocate prepare stmt;
Query OK, 0 rows affected (0.00 sec)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonMySQL concat() erstellt Spaltennamen zur Verwendung in Abfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage