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

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)

  1. 特定の行を選択して、すでに作成されたテーブルから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

  2. '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