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

Làm thế nào để triển khai MAX (khác biệt…) trong MySQL và sự khác biệt mà không sử dụng DISTINCT là gì?

Hãy để chúng tôi xem cú pháp đầu tiên, sử dụng DISTINCT trong MAX () -

select max(DISTINCT yourColumnName) from yourTableName;

Cú pháp thứ hai như sau. Nó không sử dụng DISTINCT -

select max( yourColumnName) from yourTableName;

LƯU Ý - Cả hai câu truy vấn trên đều cho cùng một kết quả có hoặc không có từ khóa DISTINCT. MySQL chuyển đổi nội bộ MAX (yourColumnName) thành từ khóa DISTINCT.

Bây giờ chúng ta hãy xem một ví dụ và tạo một bảng -

mysql> create table DemoTable
(
   Number int
);
Query OK, 0 rows affected (1.50 sec)

Chèn một số bản ghi vào bảng bằng lệnh chèn -

mysql> insert into DemoTable values(80);
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values(88);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values(78);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values(88);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values(68);
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values(88);
Query OK, 1 row affected (0.10 sec)

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select *from DemoTable;

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

+--------+
| Number |
+--------+
|     80 |
|     88 |
|     78 |
|     88 |
|     68 |
|     88 |
+--------+
6 rows in set (0.00 sec)

TRƯỜNG HỢP 1 - Sau đây là truy vấn triển khai MAX (DISTINCT ..) -

mysql> select max(DISTINCT Number) from DemoTable;

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

+----------------------+
| max(DISTINCT Number) |
+----------------------+
|                   88 |
+----------------------+
1 row in set (0.00 sec)

TRƯỜNG HỢP 2 - Sau đây là truy vấn để triển khai MAX () mà không có DISTINCT -

mysql> select max(Number) from DemoTable;

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

+-------------+
| max(Number) |
+-------------+
|          88 |
+-------------+
1 row in set (0.07 sec)

Như bạn thấy ở trên, cả hai đều cho cùng một kết quả.