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

Làm thế nào để truy xuất một giá trị với MySQL count () có giá trị ủng hộ tối đa?


Giả sử chúng ta có một số cột trong bảng, một cột dành cho đường dẫn hình ảnh và một cột khác dành cho số phiếu ủng hộ. Tuy nhiên, cột đầu tiên là Id tăng tự động như được hiển thị bên dưới -

mysql> create table DemoTable(
   Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,ImagePath varchar(100),UpvoteValue int
);
Query OK, 0 rows affected (0.72 sec)

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

mysql> insert into DemoTable(ImagePath,UpvoteValue) values('Image1.jpeg',90);
Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable(ImagePath,UpvoteValue) values('Image2.jpeg',10);
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable(ImagePath,UpvoteValue) values('Image3.jpeg',120);
Query OK, 1 row affected (0.25 sec)
mysql> insert into DemoTable(ImagePath,UpvoteValue) values('Image4.jpeg',114);
Query OK, 1 row affected (1.17 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 -

+----+-------------+-------------+
| Id | ImagePath   | UpvoteValue |
+----+-------------+-------------+
| 1  | Image1.jpeg | 90          |
| 2  | Image2.jpeg | 10          |
| 3  | Image3.jpeg | 120         |
| 4  | Image4.jpeg | 114         |
+----+-------------+-------------+
4 rows in set (0.00 sec)

Đây là truy vấn để truy xuất giá trị đường dẫn hình ảnh với count () có giá trị upvote tối đa -

mysql> select ImagePath from DemoTable where UpvoteValue IN (select max(UpvoteValue) from DemoTable);

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

+-------------+
| ImagePath   |
+-------------+
| Image3.jpeg |
+-------------+
1 row in set (0.00 sec)