MySQLストアドプロシージャでのWHEREIN()の操作
まずテーブルを作成しましょう-
mysql> create table DemoTable -> ( -> Id int, -> Name varchar(20) -> ); Query OK, 0 rows affected (0.69 sec)
挿入コマンド-
を使用して、テーブルにいくつかのレコードを挿入しますmysql> insert into DemoTable values(100,'Chris'); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable values(101,'Bob'); Query OK, 1 row affected (0.18 sec) mysql> insert into DemoTable values(102,'David'); Query OK, 1 row affected (0.18 sec)
selectステートメントを使用してテーブルのすべてのレコードを表示する-
mysql> select * from DemoTable;
これにより、次の出力が生成されます-
+------+-------+ | Id | Name | +------+-------+ | 100 | Chris | | 101 | Bob | | 102 | David | +------+-------+ 3 rows in set (0.00 sec)
これは、WHERE IN()-
を使用するストアドプロシージャを作成するためのクエリです。mysql> DELIMITER // mysql> CREATE PROCEDURE whereInDemo(in input varchar(100)) -> BEGIN -> set @Query = 'select Name from DemoTable '; -> set @Query = CONCAT(@Query,' where Id IN (',`input`,')'); -> prepare stmt from @Query; -> execute stmt; -> deallocate prepare stmt; -> END // Query OK, 0 rows affected (0.23 sec) mysql> DELIMITER ;
これで、CALLコマンドを使用してストアドプロシージャを呼び出すことができます-
mysql> call whereInDemo('100,102');
これにより、次の出力が生成されます-
+-------+ | Name | +-------+ | Chris | | David | +-------+ 2 rows in set (0.04 sec) Query OK, 0 rows affected, 1 warning (0.07 sec)
-
特定の条件でレコードを更新するMySQLストアドプロシージャ?
このために、PROCEDUREのWHERE句と一緒にUPDATEコマンドを使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable -> ( -> Id int, -> FirstName varchar(20), -> LastName varchar(20) -> ); Query OK, 0 rows affected (0.56 sec) 挿入コマンド-を使用して、テーブル
-
MySQLでのAUTO_INCREMENT列の操作
MySQLでAUTO_INCREMENT列を操作する方法を理解しましょう- AUTO_INCREMENT属性は、新しい行の一意のIDを生成するために使用されます。このステートメントがどのように機能するかを見てみましょう。その前に、以下のクエリを検討してください- クエリ CREATE TABLE tableName ( id MEDIUMINT NOT NULL AUTO_INCREMENT, name CHAR(30) NOT NULL, PRIMARY KEY (id) ); INSERT INTO tableName (name