ホームページ >データベース >mysql チュートリアル >MySQL concat() はクエリで使用される列名を作成しますか?
クエリで使用する列名を作成するには、set コマンドでユーザー定義変数を使用する必要があります。構文は次のとおりです。 -
SET @anyVariableName := ( SELECT CONCAT ( "SELECT", GROUP_CONCAT(CONCAT(" 1 as ", COLUMN_NAME) SEPARATOR ','), " FROM DUAL") FROM INFORMATION_SCHEMA_COLUMNS WHERE TABLE_NAME= ‘yourTableName’ );
次に、PREPARE コマンドを使用してステートメントを準備します。構文は次のとおりです。 -
PREPARE anyVariableName from @anyVariableName;
EXECUTE コマンドを使用してステートメントを実行します。構文は次のとおりです。 -
EXECUTE anyVariableName;
DEALLOCATE コマンドを使用して、準備されたステートメントの割り当てを解除します。構文は次のとおりです。 -
DEALLOCATE PREPARE anyVariableName;
次に、2 つの列を持つテーブルを作成します。この列は結合クエリで使用されます。テーブルを作成するクエリは次のとおりです。 -
mysql> create table ConcatenationWithUserDefinedVariable -> ( -> Id int NOT NULL AUTO_INCREMENT, -> User_Id int, -> PRIMARY KEY(Id) -> ); Query OK, 0 rows affected (1.14 sec)
クエリで使用する列名には上記の構文を使用します。クエリは次のとおりです -
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)
上記のユーザー定義変数を準備するためのクエリは次のとおりです -
mysql> prepare stmt from @q; Query OK, 0 rows affected (0.00 sec) Statement prepared
ここで、上で準備したステートメントを実行します。クエリは次のとおりです -
mysql> execute stmt;
以下は出力です -
+----+---------+ | Id | User_Id | +----+---------+ | 1 | 1 | +----+---------+ 1 row in set (0.00 sec)
最後に、準備されたステートメントを解放する必要があります。クエリは次のとおりです -
mysql> deallocate prepare stmt; Query OK, 0 rows affected (0.00 sec)
以上がMySQL concat() はクエリで使用される列名を作成しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。