Computer >> Máy Tính >  >> Lập trình >> MySQL

Giới hạn tổng số kết quả trên các bảng trong MySQL?

Đối với điều này, bạn có thể sử dụng UNION ALL cùng với khái niệm LIMIT. Đối với ví dụ của chúng tôi, chúng tôi sẽ tạo ba bảng.

Hãy để chúng tôi tạo bảng đầu tiên -

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

Chèn một số bản ghi vào bảng với sự trợ giúp của lệnh 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)

Hiển thị các bản ghi từ bảng bằng cách sử dụng câu lệnh select -

mysql> select *from demo3;

Điều này sẽ tạo ra kết quả sau -

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

Truy vấn để tạo bảng thứ hai như sau -

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

Chèn một số bản ghi vào bảng với sự trợ giúp của lệnh 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)

Hiển thị các bản ghi từ bảng bằng cách sử dụng câu lệnh select -

mysql> select *from demo4;

Điều này sẽ tạo ra kết quả sau -

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

Đây là truy vấn để tạo bảng thứ ba.

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

Chèn một số bản ghi vào bảng với sự trợ giúp của lệnh 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)

Hiển thị các bản ghi từ bảng bằng cách sử dụng câu lệnh select -

mysql> select *from demo5;

Điều này sẽ tạo ra kết quả sau -

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

Sau đây là truy vấn để giới hạn tổng số kết quả trên các bảng -

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;

Điều này sẽ tạo ra kết quả sau -

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