MySQL concat()を使用して、クエリで使用する列名を作成しますか?
クエリで使用する列名を作成するには、setコマンドでユーザー定義変数を使用する必要があります。構文は次のとおりです-
SET @anyVariableName := ( SELECT CONCAT ( "SELECT", GROUP_CONCAT(CONCAT("\n 1 as ", COLUMN_NAME) SEPARATOR ','), "\n FROM DUAL") FROM INFORMATION_SCHEMA_COLUMNS WHERE TABLE_NAME= ‘yourTableName’ );
次に、PREPAREコマンドを使用してステートメントを準備します。構文は次のとおりです-
PREPARE anyVariableName from @anyVariableName;
EXECUTEコマンドを使用してステートメントを実行します。構文は次のとおりです-
EXECUTE anyVariableName;
DEALLOCATEコマンドを使用して、準備されたステートメントの割り振りを解除します。構文は次のとおりです-
DEALLOCATE PREPARE anyVariableName;
ここで、2つの列を持つテーブルを作成し、列はconcatクエリで使用されます。テーブルを作成するためのクエリは次のとおりです-
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("\n 1 as ", column_name) separator ','), -> "\nfrom 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クエリのすべての列名に「エイリアス」を設定します
列名のエイリアスを設定するための構文は次のとおりです- select yourColumnName1 anyAliasName1,yourColumnName2 anyAliasName2 from yourTableName anyAliasName; 上記の構文を理解するために、テーブルを作成しましょう- mysql> create table DemoTable2014 -> ( -> FirstName varchar(20), -> LastName varchar(20)
-
MySQLシーケンスを作成する方法は?
MySQLのシーケンスとは何ですか? MySQLでは、シーケンスとは、指定されている場合は1または0から昇順で生成される整数のリストを指します。多くのアプリケーションでは、特に識別のために一意の番号を生成するために使用されるシーケンスが必要です。 例 例としては、CRMの顧客ID、HRの従業員番号、サービス管理システムの機器番号などがあります。 MySQLでシーケンスを自動的に作成するには、列のAUTO_INCREMENT属性を設定する必要があります。これは通常、主キー列になります。 ルール AUTO_INCREMENT属性を使用するときは、次のルールに従う必要があります- すべての