MySQLの自動インクリメントIDを予約しますか?
MySQLの自動インクリメントIDを予約するための構文は、次のとおりです-
START TRANSACTION; insert into yourTableName values(),(),(),(); ROLLBACK; SELECT LAST_INSERT_ID() INTO @anyVariableName;
上記の構文を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです-
mysql> create table reservingAutoIncrementDemo -> ( -> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY -> ); Query OK, 0 rows affected (0.45 sec)
挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。クエリは次のとおりです-
mysql> START TRANSACTION; Query OK, 0 rows affected (0.00 sec) mysql> insert into reservingAutoIncrementDemo values(),(),(),(); Query OK, 4 rows affected (0.15 sec) Records: 4 Duplicates: 0 Warnings: 0 mysql> select *from reservingAutoIncrementDemo; +--------+ | UserId | +--------+ | 1 | | 2 | | 3 | | 4 | +--------+ 4 rows in set (0.00 sec) mysql> rollback; Query OK, 0 rows affected (0.00 sec)
これは、MySQLauto_incrementedIDを予約するためのクエリです-
mysql> SELECT LAST_INSERT_ID() INTO @IncrementedValue; Query OK, 1 row affected (0.00 sec)
予約されたauto_incremented値を確認しましょう。クエリは次のとおりです-
mysql> select @IncrementedValue;
これが出力です-
+-------------------+ | @IncrementedValue | +-------------------+ | 1 | +-------------------+ 1 row in set (0.00 sec)
-
MySQLの単一のパラメータに複数のIDを渡しますか?
複数のIDを単一のパラメーターに渡すには、FIND_IN_SET()を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1817 ( EmployeeName varchar(20), CountryName varchar(20) ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコード
-
MySQLの対応する重複IDから最大量を表示する
対応する重複IDから最大量を表示するには、MAX()をGROUPBY句とともに使用します- mysql> create table DemoTable2003 ( CustomerId int, Amount int ); Query OK, 0 rows affected (0.65 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable2003 values(101,560); Query OK, 1 row affected (0.12 sec