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