2019のようにMySQLで現在の年から動的なテーブル名を作成します
年(2019)のようなテーブル名を作成するには、PREPAREステートメントを使用します。まずテーブルを作成しましょう-
mysql> create table DemoTable1959 ( UserName varchar(20) ); Query OK, 0 rows affected (0.00 sec)
挿入コマンド-
を使用して、テーブルにいくつかのレコードを挿入しますmysql> insert into DemoTable1959 values('Chris');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1959 values('David');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1959 values('Bob');
Query OK, 1 row affected (0.00 sec) selectステートメントを使用してテーブルのすべてのレコードを表示する-
mysql> select * from DemoTable1959;
これにより、次の出力が生成されます-
+----------+ | UserName | +----------+ | Chris | | David | | Bob | +----------+ 3 rows in set (0.00 sec)
これは、現在の年から動的テーブル名を作成するためのクエリです
mysql> set @dynamicQuery = CONCAT('create table `', date_format(curdate(),'%Y'), '` as select UserName from DemoTable1959');
Query OK, 0 rows affected (0.00 sec)
mysql> prepare st from @dynamicQuery;
Query OK, 0 rows affected (0.00 sec)
Statement prepared
mysql> execute st;
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0 selectステートメントを使用して、テーブルのすべてのレコードを表示します。ここで、現在の年は2019年です-
mysql> select * from `2019`;
これにより、次の出力が生成されます-
+----------+ | UserName | +----------+ | Chris | | David | | Bob | +----------+ 3 rows in set (0.00 sec)
-
特定の行を選択して、すでに作成されたテーブルからMySQLテーブルを作成しますか?
作成済みのテーブルからテーブルを作成するには、CREATE TABLEASSELECTステートメントを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1318 -> ( -> Id int, -> FirstName varchar(10), -> LastName varchar(10), -> Age int -> ); Query OK, 0 rows affected (0.50 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert
-
'10/12/2010'のような日付形式からフェッチされた特定の年でテーブルのレコードを更新しますか?
特定の年のレコードを更新するには、次の構文のようにYEAR()メソッドを使用します。 update yourTableName set yourColumnName1=yourValue1 where YEAR(str_to_date(yourColumnName2,'%d/%m/%Y'))=yourValue2; まずテーブルを作成しましょう- mysql> create table DemoTable1924 ( UserName varchar(20), UserJoiningDate