Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

IN()을 사용하여 MySQL 저장 프로시저에서 특정 레코드만 가져오시겠습니까?

<시간/>

먼저 테이블을 생성하겠습니다 -

mysql> Create table DemoTable2004( UserId varchar(20), UserName varchar(20));Query OK, 영향을 받는 행 0개(0.57초)

삽입 명령을 사용하여 테이블에 일부 레코드 삽입 -

mysql> insert into DemoTable2004 values('John_123','John');Query OK, 1행 영향(0.93초)mysql> insert into DemoTable2004 values('23456_Carol','Carol');Query OK, 1 row 영향을 받는(0.25초)mysql> DemoTable2004 값에 삽입('111_Bob','Bob');쿼리 확인, 1행 영향(0.14초)

select 문을 사용하여 테이블의 모든 레코드 표시 -

mysql> DemoTable2004에서 * 선택;

이것은 다음과 같은 출력을 생성합니다 -

+-------------+----------+| 사용자 ID | 사용자 이름 |+-------------+----------+| 존_123 | 존 || 23456_캐롤 | 캐롤 || 111_밥 | 밥 |+-------------+----------+세트의 행 3개(0.00초)

다음은 저장 프로시저를 만들고 IN() −

를 사용하여 특정 레코드만 선택하는 쿼리입니다.
mysql> 구분자 //mysql> 프로시저 생성 test_of_in(IN uId varchar(20)) BEGIN select * from DemoTable2004 where UserId IN(uId); END //쿼리 OK, 영향을 받는 행 0개(0.15초)mysql> delimiter;저장 프로시저 호출:mysql> call test_of_in('23456_Carol');

이것은 다음과 같은 출력을 생성합니다 -

+-------------+----------+| 사용자 ID | 사용자 이름 |+-------------+----------+| 23456_캐롤 | Carol |+-------------+----------+1 row in set (0.00 sec)Query OK, 영향을 받는 0 개, 경고 1개 (0.02 sec)