如何使用 MySQL count() 检索最大 upvote 值?
假设我们的表中有一些列,其中一列是图像路径,另一列是 upvotes。但是,第一列是自动递增的Id,如下所示−
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)
使用 insert 命令向表中插入一些记录−
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)
使用 select 语句显示表中的所有记录−
mysql> select *from DemoTable;
这将生成以下输出 −
+----+-------------+-------------+
| 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)
下面是检索具有具有最大 upvote 值的 count() 的 imagepath 值的查询 −
mysql> select ImagePath from DemoTable where UpvoteValue IN (select max(UpvoteValue) from DemoTable);
这将生成以下输出 −
+-------------+
| ImagePath |
+-------------+
| Image3.jpeg |
+-------------+
1 row in set (0.00 sec)
阅读更多:MySQL 教程
极客教程