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

대체 ID 레코드만 표시하기 위해 MySQL WHERE 절에서 루프를 사용하는 것과 같은 유사한 결과를 어떻게 얻을 수 있습니까?

<시간/>

MySQL IN()을 사용하여 유사한 결과를 얻으십시오. 먼저 테이블을 생성하겠습니다 -

mysql> create table DemoTable
(
   ClientId int,
   ClientName varchar(100),
   ClientAge int
);
Query OK, 0 rows affected (0.70 sec)

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

mysql> insert into DemoTable values(100,'Chris',34);
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable values(101,'Robert',31);
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values(103,'David',33);
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable values(104,'Mike',45);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values(105,'Sam',39);
Query OK, 1 row affected (0.09 sec)

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

mysql> select *from DemoTable;

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

+----------+------------+-----------+
| ClientId | ClientName | ClientAge |
+----------+------------+-----------+
|      100 | Chris      |        34 |
|      101 | Robert     |        31 |
|      103 | David      |        33 |
|      104 | Mike       |        45 |
|      105 | Sam        |        39 |
+----------+------------+-----------+
5 rows in set (0.00 sec)

다음은 MySQL IN() -

을 사용하여 루프와 유사한 결과를 얻는 쿼리입니다.
mysql> select ClientId,ClientName,ClientAge from DemoTable
where ClientId IN(101,103,105);

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

+----------+------------+-----------+
| ClientId | ClientName | ClientAge |
+----------+------------+-----------+
|      101 | Robert     |        31 |
|      103 | David      |        33 |
|      105 | Sam        |        39 |
+----------+------------+-----------+
3 rows in set (0.00 sec)