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

MySQL의 테이블에서 총 결과 수를 제한하시겠습니까?

<시간/>

이를 위해 LIMIT 개념과 함께 UNION ALL을 사용할 수 있습니다. 이 예에서는 세 개의 테이블을 만듭니다.

첫 번째 테이블을 만들어 보겠습니다 -

mysql> create table demo3
−> (
−> value int
−> );
Query OK, 0 rows affected (1.39 sec)

insert 명령을 사용하여 일부 레코드를 테이블에 삽입하십시오 -

mysql> insert into demo3 values(10);
Query OK, 1 row affected (0.13 sec)

mysql> insert into demo3 values(20);
Query OK, 1 row affected (0.08 sec)

mysql> insert into demo3 values(30);
Query OK, 1 row affected (0.08 sec)

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

mysql> select *from demo3;

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

+-------+
| value |
+-------+
| 10    |
| 20    |
| 30    |
+-------+
3 rows in set (0.00 sec)

두 번째 테이블을 생성하는 쿼리는 다음과 같습니다. -

mysql> create table demo4
−> (
−> value1 int
−> );
Query OK, 0 rows affected (2.10 sec)

insert 명령을 사용하여 일부 레코드를 테이블에 삽입하십시오 -

mysql> insert into demo4 values(40);
Query OK, 1 row affected (0.10 sec)

mysql> insert into demo4 values(10);
Query OK, 1 row affected (0.09 sec)

mysql> insert into demo4 values(60);
Query OK, 1 row affected (0.17 sec)

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

mysql> select *from demo4;

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

+--------+
| value1 |
+--------+
| 40     |
| 10     |
| 60     |
+--------+
3 rows in set (0.00 sec)

다음은 세 번째 테이블을 생성하는 쿼리입니다.

mysql> create table demo5
−> (
−> value2 int
−> );
Query OK, 0 rows affected (2.13 sec)

insert 명령을 사용하여 일부 레코드를 테이블에 삽입하십시오 -

mysql> insert into demo5 values(100);
Query OK, 1 row affected (0.09 sec)
mysql> insert into demo5 values(60);
Query OK, 1 row affected (0.14 sec)
mysql> insert into demo5 values(50);
Query OK, 1 row affected (0.10 sec)

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

mysql> select *from demo5;

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

+--------+
| value2 |
+--------+
| 100    |
| 60     |
| 50     |
+--------+
3 rows in set (0.00 sec)

다음은 테이블 전체의 총 결과 수를 제한하는 쿼리입니다 -

mysql> select tbl.*
−> from ((select * from demo3 ORDER BY value DESC LIMIT 2
−> ) UNION ALL
−> (select * from demo4 ORDER BY value1 DESC LIMIT 2
−> ) UNION ALL
−> (select * from demo5 ORDER BY value2 DESC LIMIT 2
−> )
−> ) tbl
−>
−> LIMIT 2;

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

+-------+
| value |
+-------+
| 30    |
| 20    |
+-------+
2 rows in set (0.00 sec)