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

IN()を使用して、MySQLストアドプロシージャの特定のレコードのみを取得しますか?


まずテーブルを作成しましょう-

mysql> create table DemoTable2004
(
   UserId varchar(20),
   UserName varchar(20)
);
Query OK, 0 rows affected (0.57 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable2004 values('John_123','John');
Query OK, 1 row affected (0.93 sec)
mysql> insert into DemoTable2004 values('23456_Carol','Carol');
Query OK, 1 row affected (0.25 sec)
mysql> insert into DemoTable2004 values('111_Bob','Bob');
Query OK, 1 row affected (0.14 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select * from DemoTable2004;

これにより、次の出力が生成されます-

+-------------+----------+
| UserId      | UserName |
+-------------+----------+
| John_123    |     John |
| 23456_Carol |    Carol |
| 111_Bob     |      Bob |
+-------------+----------+
3 rows in set (0.00 sec)

これは、ストアドプロシージャを作成し、IN()-

を使用して特定のレコードのみを選択するためのクエリです。
mysql> delimiter //
mysql> create procedure test_of_in(IN uId varchar(20))
   BEGIN
      select * from DemoTable2004 where UserId IN(uId);
   END
   //
Query OK, 0 rows affected (0.15 sec)
mysql> delimiter ;
Call the stored procedure:
mysql> call test_of_in('23456_Carol');

これにより、次の出力が生成されます-

+-------------+----------+
| UserId      | UserName |
+-------------+----------+
| 23456_Carol | Carol    |
+-------------+----------+
1 row in set (0.00 sec)
Query OK, 0 rows affected, 1 warning (0.02 sec)

  1. パラメータを取得し、ストアドプロシージャ内に作成された新しいテーブルのLIKEで使用する動的SQL

    これには、プリペアドステートメントを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1973    (    StudentId int,    StudentName varchar(20)    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1973 values(101,'Chr

  2. MySQLストアドプロシージャで区切り文字を正しく使用して値を挿入するにはどうすればよいですか?

    まずテーブルを作成しましょう- mysql> create table DemoTable2028    -> (    -> StudentFirstName varchar(20),    -> StudentLastName varchar(20)    -> ); Query OK, 0 rows affected (0.87 sec) これは、ストアドプロシージャを作成し、値を挿入するためのクエリです(区切り文字を正しく使用して)- mysql> delimiter