MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

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)

  1. 単一のMySQLクエリのすべての列名に「エイリアス」を設定します

    列名のエイリアスを設定するための構文は次のとおりです- select yourColumnName1 anyAliasName1,yourColumnName2 anyAliasName2 from yourTableName anyAliasName; 上記の構文を理解するために、テーブルを作成しましょう- mysql> create table DemoTable2014    -> (    -> FirstName varchar(20),    -> LastName varchar(20)

  2. MySQLシーケンスを作成する方法は?

    MySQLのシーケンスとは何ですか? MySQLでは、シーケンスとは、指定されている場合は1または0から昇順で生成される整数のリストを指します。多くのアプリケーションでは、特に識別のために一意の番号を生成するために使用されるシーケンスが必要です。 例 例としては、CRMの顧客ID、HRの従業員番号、サービス管理システムの機器番号などがあります。 MySQLでシーケンスを自動的に作成するには、列のAUTO_INCREMENT属性を設定する必要があります。これは通常、主キー列になります。 ルール AUTO_INCREMENT属性を使用するときは、次のルールに従う必要があります- すべての